Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Makefile
- # Copyright (c) 2018 Justin Hanekom <justin_hanekom@yahoo.com>
- rm := rm --recursive --force
- mkdir := mkdir --parents
- ada_version := gnat2012
- src_dir := src
- main_src_dir := $(src_dir)/main/ada
- test_src_dir := $(src_dir)/test/ada
- target_dir := target
- main_target_dir := $(target_dir)/main/ada
- test_target_dir := $(target_dir)/test/ada
- docs_dir := $(target_dir)/docs
- shared_or_static := shared
- optimization_level := 2
- src_file := main.adb
- main_app := fizzbuzz
- test_file := test_runner.adb
- test_app := test_fizzbuzz
- BASE_MAKE_FLAGS := $(BASE_MAKE_FLAGS) -$(ada_version) -$(shared_or_static) \
- -I$(main_src_dir) -C -E -gnata -gnatF -gnatn -gnatwae -gnatwl -gnaty-o \
- -k -m -s
- MAKE_FLAGS := $(MAKE_FLAGS) $(BASE_MAKE_FLAGS) -D $(main_target_dir) \
- -O$(optimization_level) -fstack-check -funroll-loops \
- -gnatyx3abcefhiIklL5M78nprStux
- TEST_MAKE_FLAGS := $(DEBUG_FLAGS) $(BASE_MAKE_FLAGS) -D $(test_target_dir) \
- -I$(test_src_dir) -aI/usr/include/aunit -aI/GNAT/2018/include/aunit \
- -aL/usr/lib/aunit -aL/GNAT/2018/lib/aunit -g
- .DEFAULT: all
- .PHONY : all
- all: main
- .PHONY : main
- main : init_dirs
- gnatmake $(MAKE_FLAGS) -o $(target_dir)/$(main_app) $(src_file)
- .PHONY : test
- test : main init_dirs
- gnatmake $(TEST_MAKE_FLAGS) -o $(target_dir)/$(test_app) $(test_file)
- .PHONY : docs
- docs : main init_dirs
- .PHONY : clean
- clean :
- -@$(rm) $(main_target_dir)/*
- -@$(rm) $(test_target_dir)/*
- -@$(rm) GNAT-TEMP-*
- .PHONY : clobber
- clobber : clean
- -@$(rm) target
- .PHONY : init_dirs
- init_dirs :
- -@$(mkdir) $(main_src_dir)
- -@$(mkdir) $(test_src_dir)
- -@$(mkdir) $(main_target_dir)
- -@$(mkdir) $(test_target_dir)
- -@$(mkdir) $(docs_dir)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement