Updating all of the makefiles to support separate directories for debug and release...
authorAdam Westhusing <adam.westhusing@intel.com>
Thu, 14 Aug 2014 20:20:03 +0000 (16:20 -0400)
committerAdam Westhusing <adam.westhusing@intel.com>
Thu, 14 Aug 2014 20:59:06 +0000 (16:59 -0400)
Change-Id: I61df1142255bc7abb4d0547c5edcc5e4567a9517

csdk/makefile
csdk/stack/samples/SimpleClientServer/makefile
csdk/stack/test/linux/makefile
makefile

index d54dcab..8cdc0d7 100644 (file)
@@ -72,6 +72,7 @@ make_lcoap:
 objdirs: $(ROOT_DIR)
        mkdir -p $(OBJ_DIR)
        mkdir -p $(OBJ_DIR)/$(BUILD)
+       mkdir -p $(BUILD)
 
 obj_build:
        @echo "Building $@"
@@ -83,7 +84,7 @@ liboctbstack.a:
        # Unpackage libcoap.a to $(OBJ_DIR)/$(BUILD). The output objects from OCStack and OCCoap are already at this location
        @cd $(OBJ_DIR)/$(BUILD) && ar -x $(LCOAP_DIR)/$(BUILD)/libcoap.a
        # Repackage all the objects at this location into a single archive. This is OCStack, OCCoap, and LibCoap (LibCoap contains OCRandom, OCLogger, and OCSocket.).
-       ar -r $@ $(OBJ_DIR)/$(BUILD)/*.o 
+       ar -r $(BUILD)/$@ $(OBJ_DIR)/$(BUILD)/*.o 
 
 .PHONY: clean print_vars
 
@@ -98,7 +99,7 @@ deepclean: legacy_deepclean
 legacy_clean:  $(ROOT_DIR)
        @echo "Cleaning all."
        rm -f $(OBJ_DIR)/$(BUILD)/*.o
-       rm -f $(ROOT_DIR)/liboctbstack.a
+       rm -f $(ROOT_DIR)/$(BUILD)/liboctbstack.a
        rm -rf $(OBJ_DIR)
 
 legacy_deepclean: $(ROOT_DIR)
index 0605764..c7f401e 100644 (file)
@@ -34,9 +34,9 @@ INC_DIRS      += -I$(OCCOAP_INC)
 INC_DIRS       += -I$(OCTBSTACK_INC)
 
 CC_FLAGS.debug      := -O0 -g3 -Wall -ffunction-sections -fdata-sections -fno-exceptions \
-                        -std=c++0x -pedantic $(INC_DIRS) -L$(ROOT_DIR) -DTB_LOG
+                        -std=c++0x -pedantic $(INC_DIRS) -L$(ROOT_DIR)/$(BUILD) -DTB_LOG
 CC_FLAGS.release    := -Os -Wall -fdata-sections -Wl,--gc-sections -Wl,-s -fno-exceptions \
-                        -std=c++0x $(INC_DIRS) -L$(ROOT_DIR) -DTB_LOG
+                        -std=c++0x $(INC_DIRS) -L$(ROOT_DIR)/$(BUILD) -DTB_LOG
                                        
 LDLIBS         += -loctbstack -lpthread
 CPPFLAGS       += $(CC_FLAGS.$(BUILD)) $(LDLIBS)
@@ -58,10 +58,10 @@ $(OBJ_DIR)/%.o: %.cpp
        $(CC) -c $(CPPFLAGS) $< -o $@
 
 ocserver: $(OBJ_DIR)/ocserver.o $(OBJ_DIR)/common.o
-       $(CC) $^ $(CPPFLAGS) -o $@
+       $(CC) $^ $(CPPFLAGS) -o $(OUT_DIR)/$(BUILD)/$@
 
 occlient: $(OBJ_DIR)/occlient.o $(OBJ_DIR)/common.o
-       $(CC) $^ $(CPPFLAGS) -o $@
+       $(CC) $^ $(CPPFLAGS) -o $(OUT_DIR)/$(BUILD)/$@
 
 .PHONY: clean
 
index 375005c..30fd07e 100644 (file)
@@ -1,9 +1,12 @@
 VERSION:=4.1.1
 
+# override with `make BUILD=release`
+# default to release build
+BUILD   := release
+
 #other options are android, arduino
 PLATFORM=linux
 
-#peg_ccfl-core
 ROOT_DIR = ../../..
 OCSOCK_DIR = $(ROOT_DIR)/ocsocket
 OCSTACK_DIR = $(ROOT_DIR)/stack
@@ -18,25 +21,25 @@ INC_DIRS += -I$(LOGGER_DIR)/include
 INC_DIRS += -I$(RANDOM_DIR)/include
 
 ifeq ($(PLATFORM),android)
-    CCPLUS=arm-linux-androideabi-g++
-    CC=arm-linux-androideabi-gcc
-    AR=arm-linux-androideabi-ar
-    RANLIB=arm-linux-androideabi-ranlib
-    CFLAGS_ANDROID =  -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16
-    LDFLAGS_ANDROID = -march=armv7-a -Wl,--fix-cortex-a8 -llog
+       CCPLUS=arm-linux-androideabi-g++
+       CC=arm-linux-androideabi-gcc
+       AR=arm-linux-androideabi-ar
+       RANLIB=arm-linux-androideabi-ranlib
+       CFLAGS_ANDROID =  -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16
+       LDFLAGS_ANDROID = -march=armv7-a -Wl,--fix-cortex-a8 -llog
 else ifeq ($(PLATFORM),linux)
-    CCPLUS=g++
-    CC=gcc
-    AR=ar
-    RANLIB=ranlib
+       CCPLUS=g++
+       CC=gcc
+       AR=ar
+       RANLIB=ranlib
 else
    $(error Wrong value for PLATFORM !!)
 endif
 
-DEP_LIBS = $(ROOT_DIR)/liboctbstack.a
+DEP_LIBS = $(ROOT_DIR)/$(BUILD)/liboctbstack.a
 
 CFLAGS += -Os -Wall -Wno-write-strings -ffunction-sections -fdata-sections -fno-exceptions \
-    -Wextra -Wno-variadic-macros -pedantic -std=gnu99 -DWITH_POSIX -DTB_LOG
+       -Wextra -Wno-variadic-macros -pedantic -std=gnu99 -DWITH_POSIX -DTB_LOG
 
 PROGRAMS = ocserver occlient
 
@@ -44,17 +47,20 @@ SOURCES:= occlient.c ocserver.c
 
 OBJECTS:= $(patsubst %.c, %.o, $(SOURCES))
 
-all: $(PROGRAMS)
+all: objdirs $(PROGRAMS)
 
 %.o: %.c
-       $(CC) -c $(CFLAGS) $(CFLAGS_ANDROID) $(INC_DIRS) $< -o $@
+       $(CC) -c $(CFLAGS) $(CFLAGS_ANDROID) $(INC_DIRS) $< -o $(BUILD)/$@
 
+objdirs: $(ROOT_DIR)
+       mkdir -p $(BUILD)
+       
 ##Added -lm as needed by json calling floor()
 occlient: occlient.o $(DEP_LIBS)
-       $(CC) -Os -Wl,--gc-sections $(LDFLAGS_ANDROID) $^ -o $@ -lm
+       $(CC) -Os -Wl,--gc-sections $(LDFLAGS_ANDROID) $(BUILD)/$^ -o $(BUILD)/$@ -lm
 
 ocserver: ocserver.o $(DEP_LIBS)
-       $(CC) -Os -Wl,--gc-sections $(LDFLAGS_ANDROID) $^ -o $@ -lm
+       $(CC) -Os -Wl,--gc-sections $(LDFLAGS_ANDROID) $(BUILD)/$^ -o $(BUILD)/$@ -lm
 
 install: all
        @echo "Installing for PLATFORM $(PLATFORM)"
@@ -66,5 +72,5 @@ endif
 .PHONY: clean
 
 clean:
-       rm -f *.o $(PROGRAMS)
-
+       rm -rf debug
+       rm -rf release
index 5225e8c..8698701 100644 (file)
--- a/makefile
+++ b/makefile
@@ -34,13 +34,13 @@ examples:
        cd examples && $(MAKE) "BUILD=$(BUILD)"
 
 simpleserver: OCLib.a
-       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(SAMPLES_OUT_DIR)/$@ examples/simpleserver.cpp $(CXX_INC) $(OBJ_DIR)/OCLib.a csdk/liboctbstack.a
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(SAMPLES_OUT_DIR)/$@ examples/simpleserver.cpp $(CXX_INC) $(OBJ_DIR)/OCLib.a csdk/$(BUILD)/liboctbstack.a
 
 simpleclient: OCLib.a
-       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(SAMPLES_OUT_DIR)/$@ examples/simpleclient.cpp $(CXX_INC) $(OBJ_DIR)/OCLib.a csdk/liboctbstack.a
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(SAMPLES_OUT_DIR)/$@ examples/simpleclient.cpp $(CXX_INC) $(OBJ_DIR)/OCLib.a csdk/$(BUILD)/liboctbstack.a
 
 simpleclientserver: OCLib.a
-       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(SAMPLES_OUT_DIR)/$@ examples/simpleclientserver.cpp $(CXX_INC) $(OBJ_DIR)/OCLib.a csdk/liboctbstack.a
+       $(CXX) $(CXX_FLAGS.$(BUILD)) -o $(SAMPLES_OUT_DIR)/$@ examples/simpleclientserver.cpp $(CXX_INC) $(OBJ_DIR)/OCLib.a csdk/$(BUILD)/liboctbstack.a
 
 OCLib.a: OCPlatform.o OCResource.o OCReflect.o InProcServerWrapper.o InProcClientWrapper.o
        ar -cvq $(OBJ_DIR)/OCLib.a $(OBJ_DIR)/OCPlatform.o $(OBJ_DIR)/OCResource.o $(OBJ_DIR)/OCReflect.o $(OBJ_DIR)/InProcServerWrapper.o $(OBJ_DIR)/InProcClientWrapper.o