# Sample Makefile 

# General gnatmake options
# save objects where sources are
OPTIONS = -i -gnatf -I../bindings

# Debug
DEBUG_OPTIONS_GNATMAKE = -g

# -gnatE for dynamic Elaboration Checks
DEBUG_OPTIONS_GCC = -gnata -gnato#-gnatE

# For tracebacks
DEBUG_OPTIONS_BINDER = -bargs -E  # non symbolic Traceback

# Optimize and "Supress all checks"(-gnatp)
RELEASE_OPTIONS_GCC = -O2 -gnatp 

# small Exes
RELEASE_OPTIONS_LINKER = -s

# Main Unit
MAIN = example
# smaller exes (you need upx compressor)
COMPRESS = upx -9 -q


debug:	ressource
	gnatmake $(OPTIONS) $(DEBUG_OPTIONS_GNATMAKE) $(MAIN) \
	-cargs $(DEBUG_OPTIONS_GCC) $(DEBUG_OPTIONS_BINDER) -largs $(LINKER_OPTIONS)

#mv *.ali *.o ./object 

release: clean ressource
	gnatmake $(OPTIONS) $(RELEASE_OPTIONS_GNATMAKE) $(MAIN) \
	-cargs $(RELEASE_OPTIONS_GCC) -largs $(RELEASE_OPTIONS_LINKER) $(LINKER_OPTIONS)
	$(COMPRESS) $(MAIN).exe > /dev/null

#mv *.ali *.o ./object

clean:
	del *.ali *.o  *~ *.*~ b~*.* #*#

ressource: example.rc
	windres -i example.rc -o example.coff
