[Title] Modify makefile and build_data
authorho.namkoong <ho.namkoong@samsung.com>
Fri, 8 Mar 2013 11:13:00 +0000 (20:13 +0900)
committerho.namkoong <ho.namkoong@samsung.com>
Fri, 8 Mar 2013 11:13:00 +0000 (20:13 +0900)
[Type]
[Module]
[Priority]
[Jira#]
[Redmine#] 8662
[Problem]
[Cause]
[Solution]
[TestCase]

Change-Id: If35b8a2de0ff3310d84e435735d85e1b142f1cb7

org.tizen.cli/src/org/tizen/cli/exec/gen/CLIProjectGenerator.java
package/addingFiles/template/makefile/build_data
package/addingFiles/template/makefile/makefile_app_template
package/addingFiles/template/makefile/makefile_shared_template
package/addingFiles/template/makefile/makefile_static_template

index 1cb2989..0ad60bd 100644 (file)
@@ -13,7 +13,10 @@ import org.tizen.nativecommon.exception.TizenProcessFailureException;
 import org.tizen.nativecommon.templateengine.TizenTemplateEngine;
 import org.tizen.nativecommon.templateengine.build.AbstractProjectGenerator;
 import org.tizen.nativecommon.templateengine.build.model.BuildProperty;
+import org.tizen.nativecommon.templateengine.build.model.DevPackageModel;
+import org.tizen.nativecommon.templateengine.build.model.RootstrapModel;
 import org.tizen.nativecommon.templateengine.build.model.TargetModel;
+import org.tizen.nativecommon.templateengine.build.model.ToolchainModel;
 import org.tizen.nativecommon.templateengine.model.TizenTemplate;
 import org.tizen.nativecommon.templateengine.process.TizenProcessRunner;
 import org.tizen.nativecommon.templateengine.util.TemplateUtil;
@@ -26,28 +29,55 @@ public class CLIProjectGenerator extends AbstractProjectGenerator {
     private static final String MACRO_OBJS = "CLI_OBJ";
     private static final String MACRO_DEPS = "CLI_DEPS";
     private static final String MACRO_BINARY = "CLI_BINARY";
+    private static final String MACRO_PRJTYPE = "projectType";
+    private static final String MACRO_PLATFORM_VER = "platformVer";
+    private static final String MACRO_TOOLCHAIN = "tc";
     
     private static final String WHITE_SPACE = " ";
     private static final String WHITE_SPACE_IN_CLI = "\\ ";
     
     public static final String DIR_MAKEFILE = InstallPathConfig.getSDKPath() + File.separatorChar + "tools" + File.separatorChar + "ide" + File.separatorChar + "template" + File.separatorChar +"makefile";
-    private static final String DIR_ROOTSTRAP = InstallPathConfig.getPlatformVersionPath() + File.separatorChar + "rootstraps";
+    private static final String DIR_ROOTSTRAP = "$(ROOTSTRAP)";
+    private static final String DIR_SDK = "$(SDKPATH)";
+    private static final String DIR_DEFAULT_TC_CF = "$(TC_COMPILER_MISC)";
+    private static final String DIR_DEFAULT_RS_CF = "$(RS_COMPILER_MISC)";
+    private static final String DIR_DEFAULT_TC_LF = "$(TC_LINKER_MISC)";
+    private static final String DIR_DEFAULT_RS_LF = "$(RS_LINKER_MISC)";
+    
+    public CLIProjectGenerator() {
+        super();
+    }
 
     @Override
-    public void addDefaultIncludePaths(TizenTemplate template, TargetModel target) {
-        String projectPath = template.getProjectPath();
-        String defaultIncPath = FileUtil.appendPath(projectPath, "inc", false);
-        buildProperty.addIncludePath(getQuotedString(defaultIncPath));
-        
-        super.addDefaultIncludePaths(template, target);
+    protected String getSDKPath() {
+        return DIR_SDK;
     }
-
+    
+    @Override
+    protected String getDefaultCfTc(ToolchainModel target) {
+        return DIR_DEFAULT_TC_CF;
+    }
+    
+    @Override
+    protected String getDefaultCfRs(RootstrapModel rootstrap) {
+        return DIR_DEFAULT_RS_CF;
+    }
+    
+    @Override
+    protected String getDefaultLfTc(ToolchainModel toolchain) {
+        return DIR_DEFAULT_TC_LF;
+    }
+    
+    @Override
+    protected String getDefaultLfRs(RootstrapModel rootstrap) {
+        return DIR_DEFAULT_RS_LF;
+    }
+    
     @Override
     protected String getRootstrapPath(String rootstrapId) {
-        //TODO It should be replaced to Macro.
-        return DIR_ROOTSTRAP + File.separatorChar +  rootstrapId;
+        return DIR_ROOTSTRAP;
     }
-
+    
     @Override
     protected String getQuotedString(String msg) {
         return msg.replace(WHITE_SPACE, WHITE_SPACE_IN_CLI);
@@ -57,6 +87,7 @@ public class CLIProjectGenerator extends AbstractProjectGenerator {
     public void pressDefaultPostValueStore(Map<String, String> valueStore, TizenTemplate template) throws TizenProcessFailureException {
         
         pressValueStoreForSrcObjDep(valueStore, template);
+        pressValueStoreForBuildData(valueStore, template);
         
         String projectName = template.getProjectName();
         String projectType = (String) template.getProperty(TizenTemplate.PROPERTY_KEY_PROJECTTYPE);
@@ -77,6 +108,12 @@ public class CLIProjectGenerator extends AbstractProjectGenerator {
         super.pressDefaultPostValueStore(valueStore, template);
     }
 
+    private void pressValueStoreForBuildData(Map<String, String> valueStore, TizenTemplate template) {
+        valueStore.put(MACRO_PLATFORM_VER, (String) template.getProperty(MACRO_PLATFORM_VER));
+        valueStore.put(MACRO_PRJTYPE, (String) template.getProperty(MACRO_PRJTYPE));
+        valueStore.put(MACRO_TOOLCHAIN, (String) template.getProperty(MACRO_TOOLCHAIN));
+    }
+
     private static void pressValueStoreForSrcObjDep(Map<String, String> valueStore, TizenTemplate template) {
         String projectPath = FileUtil.appendPath(template.getProjectPath(), "src");
         File projectDir = new File(projectPath);
@@ -185,4 +222,19 @@ public class CLIProjectGenerator extends AbstractProjectGenerator {
         runner.setTemplate(template);
         return runner;
     }
+    
+    @Override
+    public void doRemainingJob(List<DevPackageModel> emulDevPackageModelList, TizenTemplate template, TargetModel target) {
+        ToolchainModel toolChain = target.getToolchain();
+        RootstrapModel rootstrap = target.getRootstrap();
+        
+        String platformVer = rootstrap.getVersion();
+        String toolChainName = toolChain.getName();
+        String projectType = toolChain.getProjectType();
+        projectType = FileUtil.getFileExtension(projectType);
+        
+        template.setProperty(MACRO_PLATFORM_VER, platformVer);
+        template.setProperty(MACRO_PRJTYPE, projectType);
+        template.setProperty(MACRO_TOOLCHAIN, toolChainName);
+    }
 }
index 8998440..7dd3c4c 100644 (file)
@@ -1,9 +1,4 @@
-target:emulator:$(emulTarget)
-target:device:$(devTarget)
-target:emulator:includepath:$(emulInc)
-target:device:includepath:$(devInc)
-target:emulator:cflags:$(emulCf)
-target:device:cflags:$(devCf)
-target:emulator:lflags:$(emulLf)
-target:device:lflags:$(devLf)
-
+PLATFORM_VER:$(platformVer)
+ARCHITECTURE:i386
+TOOLCHAIN:$(tc)
+TYPE:$(projectType)
index b530223..d7b95b6 100644 (file)
@@ -50,7 +50,7 @@ $(CLI_DEPS)
 src/%.o: ../src/%.cpp
        @echo 'Building file: $<'
        @echo 'Invoking: C++ Compiler'
-       $(CC) -I"pch" -D_DEBUG -O0 -g3 -Wall -c -fmessage-length=0 $(INCLUDE_PATH) $(CFLAG) -D_APP_LOG -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+       $(CC) -D_DEBUG -I"$(PROJPATH)/inc" -O0 -g3 -Wall -c -fmessage-length=0 $(emulInc) $(emulCf) -D_APP_LOG -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
        @echo 'Finished building: $<'
        @echo ' '
 
@@ -92,7 +92,7 @@ all: $(CLI_BINARY) secondary-outputs
 $(CLI_BINARY): $(OBJS) $(USER_OBJS)
        @echo 'Building target: $@'
        @echo 'Invoking: C++ Linker'
-       $(CC) -o"$(CLI_BINARY)" $(OBJS) $(USER_OBJS) $(LIBS) $(LFLAG)
+       $(CC) -o"$(CLI_BINARY)" $(OBJS) $(USER_OBJS) $(LIBS) $(emulLf)
        @echo 'Finished building target: $@'
        @echo ' '
 
index 4bd5c36..43fa79a 100644 (file)
@@ -47,7 +47,7 @@ $(CLI_DEPS)
 src/%.o: ../src/%.cpp
        @echo 'Building file: $<'
        @echo 'Invoking: C++ Compiler'
-       $(CC) -I"pch" -D_DEBUG -O0 -g3 -Wall -c -fmessage-length=0 $(INCLUDE_PATH) $(CFLAG) -D_APP_LOG -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+       $(CC) -D_DEBUG -I"$(PROJPATH)/inc" -O0 -g3 -Wall -c -fmessage-length=0 $(emulInc) $(emulCf) -D_APP_LOG -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
        @echo 'Finished building: $<'
        @echo ' '
 
@@ -89,7 +89,7 @@ all: $(CLI_BINARY) secondary-outputs
 $(CLI_BINARY): $(OBJS) $(USER_OBJS)
        @echo 'Building target: $@'
        @echo 'Invoking: C++ Linker'
-       $(CC) -o"$(CLI_BINARY)" $(OBJS) $(USER_OBJS) $(LIBS) $(LFLAG)
+       $(CC) -o"$(CLI_BINARY)" $(OBJS) $(USER_OBJS) $(LIBS) $(emulLf)
        @echo 'Finished building target: $@'
        @echo ' '
 
index 6834036..bbde3e8 100644 (file)
@@ -47,7 +47,7 @@ $(CLI_DEPS)
 src/%.o: ../src/%.cpp
        @echo 'Building file: $<'
        @echo 'Invoking: C++ Compiler'
-       $(CC) -I"pch" -D_DEBUG $(INCLUDE_PATH) -O0 -g3 -Wall -c -fmessage-length=0 $(CFLAG) -D_APP_LOG -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+       $(CC) -D_DEBUG -I"$(PROJPATH)/inc" -O0 -g3 -Wall -c -fmessage-length=0 $(emulInc) $(emulCf) -D_APP_LOG -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
        @echo 'Finished building: $<'
        @echo ' '
 
@@ -89,7 +89,7 @@ all: $(CLI_BINARY) secondary-outputs
 $(CLI_BINARY): $(OBJS) $(USER_OBJS)
        @echo 'Building target: $@'
        @echo 'Invoking: Archiver'
-       ar -r  "$(CLI_BINARY)" $(OBJS) $(USER_OBJS) $(LIBS)
+       i386-linux-gnueabi-ar -r  "$(CLI_BINARY)" $(OBJS) $(USER_OBJS) $(LIBS)
        @echo 'Finished building target: $@'
        @echo ' '