104 lines
2.3 KiB
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
|