170 lines
7.6 KiB
Makefile
170 lines
7.6 KiB
Makefile
##################################################
|
|
# Makefile for building lib and main test routine#
|
|
##################################################
|
|
LOCATION=DEBIAN_7
|
|
#LOCATION=DEBIAN_6
|
|
#LOCATION=OSX_10_8
|
|
|
|
SYSTEM = $(shell uname -s)
|
|
|
|
CXX = g++
|
|
CC = gcc
|
|
|
|
#PRODORDEV += -O2
|
|
PRODORDEV += -ggdb3
|
|
|
|
CXXFLAGS = $(PRODORDEV) -Wall -Wpointer-arith -Wcast-qual -D_REENTRANT -fPIC
|
|
CPPFLAGS = -fPIC -D_GNU_SOURCE -D$(LOCATION)
|
|
CXXFLAGS += -D_GNU_SOURCE -O0 -D$(LOCATION)
|
|
|
|
ifeq ($(LOCATION),DEBIAN_7)
|
|
XALAN_LIB_DIR = /usr/local/lib/
|
|
XALAN_LIB = xalan-c
|
|
XALAN_INC_DIR = /usr/local/include/xalanc
|
|
XERCES_LIB_DIR = /usr/local/lib/
|
|
XERCES_LIB = xerces-c
|
|
XERCES_INC_DIR = /usr/local/include/xercesc
|
|
endif
|
|
ifeq ($(LOCATION),DEBIAN_6)
|
|
XALAN_LIB_DIR = /usr/lib/
|
|
XALAN_LIB = xalan-c
|
|
XALAN_INC_DIR = /usr/include/xalanc
|
|
XERCES_LIB_DIR = /usr/lib/
|
|
XERCES_LIB = xerces-c
|
|
XERCES_INC_DIR = /usr/include/xercesc
|
|
endif
|
|
ifeq ($(LOCATION),OSX_10_8)
|
|
XALAN_LIB_DIR = /opt/local/lib/
|
|
XALAN_LIB = xalan-c
|
|
XALAN_INC_DIR = /opt/local/include/
|
|
XERCES_LIB_DIR = /opt/local/lib/
|
|
XERCES_LIB = xerces-c
|
|
XERCES_INC_DIR = /opt/local/include/
|
|
endif
|
|
|
|
include xml-deps.mk
|
|
|
|
##### Set this to the location of the library to be produced
|
|
|
|
BUILD_LIB_DIR = lib
|
|
BUILD_OBJ_DIR = build
|
|
|
|
###### Include Paths
|
|
|
|
INCLUDE_DIR = -I . -I $(XERCES_INC_DIR) -I $(XALAN_INC_DIR) -I ../AusRegCliever/include -I /usr/include
|
|
|
|
build_obj_dir = $(BUILD_OBJ_DIR)
|
|
|
|
src_dirs_cpp = se se/secDNS common se/LPE session xml
|
|
src_dirs_c = config
|
|
srcs_all = $(foreach dir,$(src_dirs_cpp),$(wildcard $(dir)/*.cpp))
|
|
srcs_all += $(foreach dir,$(src_dirs_c),$(wildcard $(dir)/*.c))
|
|
|
|
srcs = $(filter-out %Test.cpp,$(srcs_all))
|
|
objs = $(foreach file,$(srcs),$(build_obj_dir)/$(basename $(notdir $(file))).o)
|
|
test_srcs = $(filter %Test.cpp,$(srcs_all))
|
|
test_objs = $(foreach file,$(test_srcs),$(build_obj_dir)/$(basename $(notdir $(file))).o)
|
|
test_execs = $(subst .o,,$(test_objs))
|
|
|
|
calc_deps = \
|
|
$(CC) -MT '$(build_obj_dir)/$(basename $(notdir $@)).o $@' -MF $@ -MM $(CPPFLAGS) $(INCLUDE_DIR) $<
|
|
|
|
all: dirs $(objs) $(BUILD_LIB_DIR)/libACTK1_0.so
|
|
|
|
%.d: %.c
|
|
$(calc_deps)
|
|
%.d: %.cpp
|
|
$(calc_deps)
|
|
include $(foreach name,$(srcs_all),$(basename $(name)).d)
|
|
|
|
vpath %.cpp ./ \
|
|
./se\
|
|
./xsd2xml \
|
|
./se/LPE \
|
|
./se/secDNS\
|
|
./xml\
|
|
./common\
|
|
./session\
|
|
|
|
vpath %.c ./config
|
|
|
|
vpath %.o ../build
|
|
|
|
####### Implicit rules
|
|
|
|
.SUFFIXES: .cpp .c
|
|
|
|
$(BUILD_OBJ_DIR)/%.o: %.cpp
|
|
$(CXX) $(CXXFLAGS) -c -o $@ $(INCLUDE_DIR) $<
|
|
|
|
$(BUILD_OBJ_DIR)/%.o: %.c
|
|
$(CC) $(CPPFLAGS) -c -o $@ $(INCLUDE_DIR) $<
|
|
|
|
|
|
ARTKLIBS = -L$(BUILD_LIB_DIR) -lACTK1_0 \
|
|
-L$(XALAN_LIB_DIR) -lxalan-c -lxalanMsg \
|
|
-L$(XERCES_LIB_DIR) -lxerces-c \
|
|
-lssl \
|
|
-lrt -llog4cpp
|
|
|
|
$(BUILD_OBJ_DIR)/%: $(BUILD_OBJ_DIR)/%.o
|
|
$(CXX) $(ARTKLIBS) -o $@ $<
|
|
|
|
.PHONY: doc clean dclean
|
|
|
|
#
|
|
# The toolkit raises the c++ "static initialization fiasco" situation. Use this as needed
|
|
#
|
|
ARTKOBJS=build/XMLGregorianCalendar.o build/XMLParser.o build/XMLWriter.o build/ACSession.o build/DomainAddRem.o \
|
|
build/EnumDomainInfoResponse.o build/log.o build/PostalInfoType.o build/SessionManagerPropertiesImpl.o \
|
|
build/RegistrantObjectType.o \
|
|
build/AddRemType.o build/DomainCheckResponse.o build/EnumDomainUpdateCommand.o build/Properties.o build/SessionPoolImpl.o \
|
|
build/boolean.o build/DomainCreateCommand.o build/EnumType.o build/ProtocolExtensionCommand.o build/SSLException.o \
|
|
build/CertificateUserMismatchException.o build/DomainCreateResponse.o build/EPPDateFormatter.o build/ReceiveSE.o build/StandardCommandType.o \
|
|
build/CheckResponse.o build/DomainInfoKVResponseExtension.o build/EPPWriter.o build/NamespaceResolver.o build/StandardObjectType.o \
|
|
build/CLTRID.o build/DomainInfoResponse.o build/ErrorPkg.o build/NAPTR.o build/RegistrantTransferCommandType.o build/StringUtils.o \
|
|
build/CommandCounter.o build/DomainKVCommandExtension.o build/Greeting.o build/NotificationResponse.o build/ResponseExtension.o build/SyncExtension.o \
|
|
build/Command.o build/DomainNotificationResponse.o build/HostAddRem.o build/ObjectCommand.o build/Response.o build/SystemProperties.o \
|
|
build/config.o build/DomainRegistrantTransferCommand.o build/HostCheckResponse.o build/ResultCounter.o build/Timer.o \
|
|
build/Constants.o build/DomainRegistrantTransferResponse.o build/HostCreateCommand.o build/LPCheck.o build/Result.o build/TLSContext.o \
|
|
build/ContactCheckResponse.o build/DomainRenewCommand.o build/HostCreateResponse.o build/LPLaunch.o build/SecDNSChgType.o build/TLSSession.o \
|
|
build/ContactCreateCommand.o build/DomainRenewResponse.o build/HostInfoResponse.o build/LPCreate.o build/SecDNSDSData.o build/TLSSocket.o \
|
|
build/ContactCreateResponse.o build/DomainSecDNSCreateCommandExtension.o build/HostUpdateCommand.o build/SecDNSDSOrKeyType.o build/TransferCommand.o \
|
|
build/ContactInfoResponse.o build/DomainSecDNSInfoResponseExtension.o build/InetAddress.o build/SecDNSExtension.o build/TransferOp.o \
|
|
build/ContactNotificationResponse.o build/DomainSecDNSUpdateCommandExtension.o build/InfoResponse.o build/SecDNSKeyData.o build/TransferResponse.o \
|
|
build/ContactTransferResponse.o build/DomainTransferResponse.o build/init.o build/Period.o build/SecDNSRemType.o build/UserPassMismatchException.o \
|
|
build/ContactUpdateCommand.o build/DomainUpdateCommand.o build/IPVersion.o build/PeriodUnit.o build/SendSE.o build/XMLDocument.o \
|
|
build/CreateResponse.o build/DomainUpdateSyncCommandExtension.o build/KVExtension.o build/PollOperation.o build/SessionFactory.o \
|
|
build/DataResponse.o build/E164Extension.o build/Logger.o build/PollResponse.o build/SessionManagerFactory.o \
|
|
build/Disclose.o build/EnumDomainCreateCommand.o build/LoginCommand.o build/PostalInfo.o build/SessionManagerImpl.o
|
|
|
|
.PHONY: tests
|
|
tests: all $(test_execs)
|
|
|
|
|
|
.PHONY: dirs
|
|
dirs:
|
|
-mkdir -p $(BUILD_LIB_DIR)
|
|
-mkdir -p $(BUILD_OBJ_DIR)
|
|
|
|
libACTK1_0.so:
|
|
$(BUILD_LIB_DIR)/libACTK1_0.so: $(objs)
|
|
$(CXX) $(LDFLAGS) $(PRODORDEV) -shared $(ARTKOBJS) -o $@
|
|
|
|
xsd2xml:
|
|
$(BUILD_OBJ_DIR)/xsd2xml: build/parser.o
|
|
$(CXX) build/parser.o -o build/xsd2xml -o $@
|
|
|
|
doc:
|
|
doxygen etc/Doxyfile
|
|
|
|
clean:
|
|
$(RM) $(objs) $(BUILD_LIB_DIR)/libACTK1_0.so *~
|
|
$(RM) -r $(BUILD_OBJ_DIR)
|
|
$(RM) -r $(BUILD_LIB_DIR)
|
|
|
|
dclean:
|
|
$(MAKE) clean
|
|
$(RM) */*.d
|
|
|