AdaID/Makefile

104 lines
2.3 KiB
Makefile

VERSION=1.0.3
LIB=./lib/libadaid.so
DEBUG=./lib/libadaid.a
TEST=./bin/test
DIST_NAME=adaid-$(VERSION)
DIST=$(DIST_NAME).tgz
GNAT=gnat
RM=rm
CHMOD=chmod
MKDIR=mkdir -p
CP=cp
.PHONY: debug test install installclean clean cleanall all support remove dist docs
#library
$(LIB): src/*.adb src/*.ads include/*.ads adaid.gpr
$(GNAT) make -Padaid.gpr
adaid.gpr: adaid.gpr.in
@cat $< | sed 's/%VERSION%/$(VERSION)/' > $@
#installation
INSTALL = $(shell which $(GNAT) 2> /dev/null | sed -e 's/\/bin\/gnat.*//')
INCLUDE= $(INSTALL)/share/ada/adainclude/adaid
LIBRARY=$(INSTALL)/lib
ALI=$(INSTALL)/lib/ada/adalib/adaid
GPR = $(INSTALL)/share/ada/adainclude
support/adaid.gpr: support/adaid.gpr.in
@cat $< | sed -e 's!%LIB_DIR%!$(LIBRARY)!' \
-e 's!%SRC_DIR%!$(INCLUDE)!' \
-e 's!%ALI_DIR%!$(ALI)!' > $@
installclean:
ifeq ($(INSTALL),)
@echo 'Error when installing: $$INSTALL is empty...'
@echo "Please set an installation path before installing"
else
-$(CHMOD) -f -R 777 $(ALI)
$(RM) -fr $(ALI)
-$(CHMOD) -f -R 777 $(INCLUDE)
$(RM) -fr $(INCLUDE)
$(RM) -f $(GPR)/adaid.gpr
$(RM) -f $(GPR)/adaid_debug.gpr
endif
install: installclean support/adaid.gpr
ifneq ($(INSTALL),)
$(MKDIR) $(GPR)
$(MKDIR) $(LIBRARY)
$(MKDIR) $(INCLUDE)
$(MKDIR) $(ALI)
$(CP) -r ali/* $(ALI)
$(CP) support/*.gpr $(GPR)
$(CP) -r lib/* $(LIBRARY)
$(CP) -r include/* $(INCLUDE)
@echo '-- AdaID has been installed.'
endif
remove: installclean
#debug library
debug: support/adaid_debug.gpr $(DEBUG)
support/adaid_debug.gpr: support/adaid_debug.gpr.in
@cat $< n | sed -e 's!%LIB_DIR%!$(LIBRARY)!' \
-e 's!%SRC_DIR%!$(INCLUDE)!' \
-e 's!%ALI_DIR%!$(ALI)!' > $@
$(DEBUG): src/*.adb src/*.ads include/*.ads
$(GNAT) make -Padaid_debug.gpr
#test executable
$(TEST): $(LIB) include/*.ads test/*.adb test/*.ads
$(GNAT) make -Ptest.gpr
#run tests
test: $(TEST)
$(TEST)
#make a tarball of the source
dist: $(DIST)
THIS=$(shell basename `pwd`)
$(DIST): cleanall
cd ..;\
tar caf $@ \
--exclude-vcs --exclude=*~ --exclude=.gitignore --exclude=*.tgz\
--xform 's!$(THIS)!$(DIST_NAME)!'\
$(THIS)
#misc
all: $(LIB) $(TEST)
clean:
$(RM) -f obj/*.* obj/test/*.* obj/debug/*.* ali/*.* ali/debug/*.* 2> /dev/null
cleanall: clean
$(RM) -f support/*.gpr bin/* lib/* adaid.gpr doc/*.html 2> /dev/null