1 2 # 3 # DESCRIPTION: 4 # Template Makefile for DM tests, jni so and engine 5 # 6 ########### Revision History ######################################## 7 # 8 # Date Author Reference 9 # ======== ======== ================================ 10 # 03-06-27 fdp101 dbg_ca69_fdp101_dm_dev, 11 # Initial draft 12 # 03-08-07 fdp101 Master reorganization, convert to template-based 13 # 06-08-07 ehb005 Vob migration 14 # 06-20-07 ehb005 LIBmm61881 - Added DM_UNITTEST 15 # 16 ##################################################################### 17 # 18 # Input parameters: 19 # Targets: 20 # all - build the the code 21 # 22 # Platforms (TARGET variable) 23 # x86-Redhat 24 # EzX 25 # 26 # Comilation options (DM_BUILD_TARGET) 27 # build - debug build 28 # release - final release with optimizations 29 # 30 ###################################################################### 31 32 #GLOBAL_VOBS_PREFIX := $(subst /vobs/jem/caf/dm/src/linux_java/mkfiles,,$(shell pwd)) 33 34 # purify target support 35 ifndef PURIFY 36 PURIFY=/rational2/releases/purify.i386_linux2.2003a.06.00/purify 37 endif 38 39 ifneq ($(DM_BUILD_TARGET),release) 40 ifdef USE_PURIFY 41 ifdef GLOBAL_EXECUTABLE 42 LINKER := $(PURIFY) -INUSE_AT_EXIT=yes -CHAIN_LENGTH="10" 43 endif 44 endif 45 endif 46 47 CC := ${COMPILERTOOLPATH}/${COMPILERTOOLPREFIX}gcc 48 CCP := ${COMPILERTOOLPATH}/${COMPILERTOOLPREFIX}gcc 49 LINKER += ${COMPILERTOOLPATH}/${COMPILERTOOLPREFIX}gcc 50 AR := ${COMPILERTOOLPATH}/${COMPILERTOOLPREFIX}ar 51 52 53 ifndef TARGET 54 TARGET := x86-Redhat 55 endif 56 57 ifndef DM_BUILD_TARGET 58 # assume debug as default 59 DM_BUILD_TARGET := build 60 endif 61 62 ifndef DMBUILDTOP 63 DMBUILDTOP=/vobs/linuxjava/device_mgmt/dm/core/build/x86-Redhat 64 endif 65 66 67 DIR_CORE := /vobs/linuxjava/device_mgmt/dm/core 68 DIR_DM :=/vobs/linuxjava/device_mgmt/dm/core/src 69 DIR_XPL :=/vobs/linuxjava/device_mgmt/dm/xpl 70 71 72 # default value only, also used when no variables are provided 73 STAGING=$(DMBUILDTOP)/release-staging 74 OUT_DIR=$(STAGING)/$(GLOBAL_TARGET_SUBDIR) 75 76 #ARCH=$(TARGET).$(DM_BUILD_TARGET) 77 ARCH=$(TARGET) 78 79 ifeq ($(DM_BUILD_TARGET),release) 80 OBJ_DIR = obj_release_$(ARCH) 81 else 82 OBJ_DIR = obj_debug_$(ARCH) 83 endif 84 85 DEPSOURCE = $(subst $(DMBUILDTOP),$(DIR_DM),$(subst $(OBJ_DIR),src,$(basename $@))) 86 87 FINALTARGET=$(OUT_DIR)/$(GLOBAL_TARGET_FILENAME) 88 89 # include each subdirs Makefile.objects 90 include $(foreach dir,$(GLOBAL_SUBDIRS_A),$(DIR_DM)/$(dir)/Makefile.objects) 91 92 OBJS = $(foreach dir1,$(GLOBAL_SUBDIRS_A),$(foreach object,$($(notdir $(subst /src,,$(dir1)))_OBJECTS),$(DMBUILDTOP)/$(dir $(dir1))/$(OBJ_DIR)/$(object)) ) 93 ALL_SOURCES = $(foreach dir1,$(GLOBAL_SUBDIRS_A),$(foreach object,$($(notdir $(subst /src,,$(dir1)))_OBJECTS),$(dir1)/$(subst .o,.c,$(subst .oo,.cc,$(object))))) 94 95 96 # Flags 97 CC_INCLUDE_FLAGS= 98 99 100 ifeq ($(DM_BUILD_TARGET),release) 101 CC_GENERIC_FLAGS = -Os -fcheck-new -Wall -Wno-deprecated \ 102 -DNDEBUG -DNO_DEBUG 103 C_GENERIC_FLAGS = -Os -Wall -DNDEBUG -DNO_DEBUG 104 105 ifdef RELEASESTAGING 106 STAGING=$(RELEASESTAGING) 107 endif 108 109 else 110 CC_GENERIC_FLAGS += -g -fcheck-new -Wall -Wno-deprecated -DDEBUG 111 112 ifdef DEVSTAGING 113 STAGING=$(DEVSTAGING) 114 endif 115 116 endif 117 118 ifeq ($(TARGET),x86-Redhat) 119 CC_GENERIC_FLAGS += -DPLATFORM_X86 120 C_GENERIC_FLAGS += -DPLATFORM_X86 -g -Wall -DDEBUG 121 else 122 CC_GENERIC_FLAGS += -DEZX_PLATFORM_arm11 -DEZX_PRODUCT_SCMA11REF 123 C_GENERIC_FLAGS += -DEZX_PLATFORM_arm11 -DEZX_PRODUCT_SCMA11REF 124 endif 125 126 ifdef USE_GCOV 127 CC_GENERIC_FLAGS += -fprofile-arcs -ftest-coverage 128 C_GENERIC_FLAGS += -fprofile-arcs -ftest-coverage 129 endif 130 131 132 ALL_CCFLAGS = -fno-rtti -fno-exceptions -fPIC \ 133 -DVRTXMC \ 134 -DSYNCML_DM_DBG_USING_XML \ 135 -DDM_SUPPORT_AUTHPREF \ 136 -DDM_ATOMIC_SUPPORTED \ 137 -DLOB_SUPPORT \ 138 -DNO_OTHER_PLUGIN \ 139 -DDM_UNITTEST \ 140 $(CC_GENERIC_FLAGS) $(CC_INCLUDE_FLAGS) $(GLOBAL_EXTRA_CC_FLAGS) $(GLOBAL_EXTRA_CC_FLAGS.$(TARGET)) \ 141 $(CMD_EXTRA_CC_FLAGS) 142 143 144 ALL_CFLAGS = -fno-exceptions -fPIC \ 145 -DVRTXMC \ 146 -DSYNCML_DM_DBG_USING_XML \ 147 -DDM_SUPPORT_AUTHPREF \ 148 -DDM_ATOMIC_SUPPORTED \ 149 -DLOB_SUPPORT \ 150 -DNO_CAF \ 151 -DNO_CAF \ 152 -DNO_OTHER_PLUGIN \ 153 -DDM_UNITTEST \ 154 $(C_GENERIC_FLAGS) $(CC_INCLUDE_FLAGS) $(GLOBAL_EXTRA_CC_FLAGS) $(GLOBAL_EXTRA_CC_FLAGS.$(TARGET)) \ 155 $(CMD_EXTRA_CC_FLAGS) 156 157 CCFLAGS = -c $(ALL_CCFLAGS) 158 CFLAGS = -c $(ALL_CFLAGS) 159 160 ifeq ($(TARGET), linux-arm-familiar) 161 GFLAG = -msoft-float 162 else 163 GFLAG = 164 endif 165 166 167 CC_LINK_FLAGS=$(CC_GENERIC_FLAGS) $(GLOBAL_EXTRA_LINK_FLAGS) \ 168 -lpthread -ldl -lstdc++ -L$(STAGING)/lib -L$(STAGING)/api -L$(OUT_DIR)\ 169 -Wl,--no-undefined \ 170 $(CMD_EXTRA_LINK_FLAGS) 171 172 all:: BUILD_PREPARE $(OBJS) $(FINALTARGET) 173 @echo -n "" 174 175 BUILD_PREPARE: 176 # @for dir in $(GLOBAL_SUBDIRS_A); do \ 177 # (test -d $(subst $(GLOBAL_VOBS_PREFIX)/vobs,$(DMBUILDTOP),$(DIR_DM)/$$dir/../obj.$(ARCH)) || (echo "mkdir -p $(subst $(GLOBAL_VOBS_PREFIX)/vobs,$(DMBUILDTOP),$(DIR_DM)/$$dir/../obj.$(ARCH))" && mkdir -p $(subst $(GLOBAL_VOBS_PREFIX)/vobs,$(DMBUILDTOP),$(DIR_DM)/$$dir/../obj.$(ARCH)) )); \ 178 # done 179 180 @(test -d $(OUT_DIR) || (mkdir -p $(OUT_DIR) && echo "created $(OUT_DIR)" )) 181 182 ##### Compile rules ##### 183 %.o: 184 mkdir -p $(@D) 185 $(CC) $(CFLAGS) $(DEPSOURCE).c -o $@ 186 187 %.oo: 188 mkdir -p $(@D) 189 $(CCP) $(CCFLAGS) $(DEPSOURCE).cc -o $@ 190 191 192 ifdef GLOBAL_CREATE_LIB 193 $(FINALTARGET): $(OBJS) 194 $(AR) rc $(FINALTARGET) $(OBJS) 195 else 196 ## Linker 197 $(FINALTARGET): $(OBJS) 198 $(LINKER) $(CC_LINK_FLAGS) -o $(FINALTARGET) $(OBJS) 199 endif 200 201