Home | History | Annotate | Download | only in mkfiles
      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