# # $Id: Makefile,v 1.22 2007/05/11 20:11:12 cnepveu Exp $ # # Copyright (c) 2007 Hexago Inc. All rights reserved. # # LICENSE NOTICE: You may use and modify this source code only if you # have executed a valid license agreement with Hexago Inc. granting # you the right to do so, the said license agreement governing such # use and modifications. Copyright or other intellectual property # notices are not to be removed from the source code. # # Author: Charles Nepveu # # OBJ_DIR=objects BIN_DIR=bin LIB_DIR=lib INC_DIR=gw6cconfig C_COMPILER=gcc -c COMPILER=g++ -c LINKER=g++ C_LINKER=gcc RANLIB=ranlib ARCHIVER=ar CPP_FLAGS=-I. -O2 -Wall -DNDEBUG $(ADDITIONAL_CPPFLAGS) $(HAP6_DEFINES) C_FLAGS=-I. -O2 -Wall -DNDEBUG $(ADDITIONAL_CPPFLAGS) $(HAP6_DEFINES) TARGET=$(LIB_DIR)/libgw6cconfig.a LD_FLAGS=-O2 -L$(LIB_DIR) -lgw6cconfig $(ADDITIONAL_LDFLAGS) .PHONY=all export clean # # GNU make - BSD make workaround # Here, we're specifying additional switches for WINDOWS targets. # The reason it's made this way is because BSD and GNU make don't agree # on conditional makefile instructions(e.g.: "ifdef", ".ifdef"). # all: @if [ "$(target)" = "windows" ]; then \ $(MAKE) target=$(target) ADDITIONAL_CPPFLAGS=-DWIN32 ADDITIONAL_LDFLAGS=-lws2_32 all-real ;\ else \ $(MAKE) target=$(target) all-real ;\ fi all-real: $(TARGET) $(BIN_DIR) test_targets export: @if [ "$(target)" = "windows" ]; then \ $(MAKE) target=$(target) ADDITIONAL_CPPFLAGS=-DWIN32 ADDITIONAL_LDFLAGS=-lws2_32 export-real ;\ else \ $(MAKE) target=$(target) export-real ;\ fi export-real: $(TARGET) @if [ -z "$(exportdir)" -o ! -d "$(exportdir)" ]; then \ echo ""; \ echo "You must specify an export directory(i.e.: exportdir=the_export_dir) in which the"\ "Gateway6 Client configuration library will be installed."; \ echo ""; \ exit 1; \ fi mkdir -p $(exportdir)/gw6cconfig cp $(TARGET) $(exportdir)/gw6cconfig cp $(INC_DIR)/*.h $(exportdir)/gw6cconfig $(OBJ_DIR): mkdir -p $(OBJ_DIR) $(BIN_DIR): mkdir -p $(BIN_DIR) $(LIB_DIR): mkdir -p $(LIB_DIR) OBJS=$(OBJ_DIR)/namevalueparser.o \ $(OBJ_DIR)/config.o \ $(OBJ_DIR)/namevalueconfig.o \ $(OBJ_DIR)/gw6cvalidation.o \ $(OBJ_DIR)/gw6cconfig.o \ $(OBJ_DIR)/gw6c_c_wrapper.o \ $(OBJ_DIR)/gw6cuistrings.o \ $(OBJ_DIR)/hap6devicemappingconfig.o \ $(OBJ_DIR)/hap6_devmap_c_wrap.o $(OBJ_DIR)/namevalueparser.o: src/namevalueparser.cc $(INC_DIR)/namevalueparser.h $(COMPILER) $(CPP_FLAGS) -o $(OBJ_DIR)/namevalueparser.o src/namevalueparser.cc $(OBJ_DIR)/config.o: src/config.cc $(INC_DIR)/config.h $(COMPILER) $(CPP_FLAGS) -o $(OBJ_DIR)/config.o src/config.cc $(OBJ_DIR)/namevalueconfig.o: src/namevalueconfig.cc $(INC_DIR)/namevalueconfig.h $(COMPILER) $(CPP_FLAGS) -o $(OBJ_DIR)/namevalueconfig.o src/namevalueconfig.cc $(OBJ_DIR)/gw6cvalidation.o: src/gw6cvalidation.cc $(INC_DIR)/gw6cvalidation.h $(COMPILER) $(CPP_FLAGS) -o $(OBJ_DIR)/gw6cvalidation.o src/gw6cvalidation.cc $(OBJ_DIR)/gw6cconfig.o: src/gw6cconfig.cc $(INC_DIR)/gw6cconfig.h $(COMPILER) $(CPP_FLAGS) -o $(OBJ_DIR)/gw6cconfig.o src/gw6cconfig.cc $(OBJ_DIR)/gw6c_c_wrapper.o: src/gw6c_c_wrapper.cc $(INC_DIR)/gw6c_c_wrapper.h $(COMPILER) $(CPP_FLAGS) -o $(OBJ_DIR)/gw6c_c_wrapper.o src/gw6c_c_wrapper.cc $(OBJ_DIR)/gw6cuistrings.o: src/gw6cuistrings.c $(INC_DIR)/gw6cuistrings.h $(C_COMPILER) $(C_FLAGS) -o $(OBJ_DIR)/gw6cuistrings.o src/gw6cuistrings.c $(OBJ_DIR)/hap6devicemappingconfig.o:src/hap6devicemappingconfig.cc $(INC_DIR)/hap6devicemappingconfig.h $(COMPILER) $(CPP_FLAGS) -o $(OBJ_DIR)/hap6devicemappingconfig.o src/hap6devicemappingconfig.cc $(OBJ_DIR)/hap6_devmap_c_wrap.o: src/hap6_devmap_c_wrap.cc $(INC_DIR)/hap6_devmap_c_wrap.h $(COMPILER) $(CPP_FLAGS) -o $(OBJ_DIR)/hap6_devmap_c_wrap.o src/hap6_devmap_c_wrap.cc $(OBJ_DIR)/test_namevalue.o: src/test_namevalue.cc $(COMPILER) $(CPP_FLAGS) -o $(OBJ_DIR)/test_namevalue.o src/test_namevalue.cc $(OBJ_DIR)/test_c_wrapper.o: src/test_c_wrapper.c $(C_COMPILER) $(C_FLAGS) -o $(OBJ_DIR)/test_c_wrapper.o src/test_c_wrapper.c $(OBJ_DIR)/test_hap6.o: src/test_hap6.cc $(COMPILER) $(CPP_FLAGS) -o $(OBJ_DIR)/test_hap6.o src/test_hap6.cc $(OBJ_DIR)/test_c_hap6_wrap.o: src/test_c_hap6_wrap.c $(C_COMPILER) $(C_FLAGS) -o $(OBJ_DIR)/test_c_hap6_wrap.o src/test_c_hap6_wrap.c test_targets: $(TARGET) $(OBJ_DIR)/test_namevalue.o $(OBJ_DIR)/test_c_wrapper.o $(OBJ_DIR)/test_hap6.o $(OBJ_DIR)/test_c_hap6_wrap.o $(LINKER) -o $(BIN_DIR)/test_namevalue $(OBJ_DIR)/test_namevalue.o $(LD_FLAGS) $(C_LINKER) -o $(BIN_DIR)/test_c_wrapper $(OBJ_DIR)/test_c_wrapper.o $(LD_FLAGS) -lstdc++ $(LINKER) -o $(BIN_DIR)/test_hap6 $(OBJ_DIR)/test_hap6.o $(LD_FLAGS) $(C_LINKER) -o $(BIN_DIR)/test_c_hap6_wrap $(OBJ_DIR)/test_c_hap6_wrap.o $(LD_FLAGS) -lstdc++ $(TARGET): $(OBJ_DIR) $(OBJS) $(LIB_DIR) $(ARCHIVER) cru $(TARGET) $(OBJS) $(RANLIB) $(TARGET) clean: @echo -n "Cleaning up workspace... " @rm -rf $(OBJ_DIR) $(BIN_DIR) $(LIB_DIR) @echo "done."