################################################## # 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