Standard Make
In the standard make project wizards, Developer Suite provides a generic set of makefiles that you can modify and tailor for your specific application build. The standard make makefiles are user-defined and user-controlled. You have to manually update when you make changes to your project (adding files, removing files, changing the output, etc.). Developer Suite essentially invokes make
to build the standard make projects.
You also have the option of not using the Developer Suite supplied makefiles, but the you must modify your makefiles to meet certain Developer Suite requirements. Developer Suite requires that the following variables (site) be defined in the makefile:
ARTIFACT_NAME
- Represents the root name of the target of the build, without any extensions. For example, if you are building the application
sample.prc
, thenARTIFACT_NAME
must have a valuesample
. DEBUG_OR_RELEASE
- The valid values for this variable are
Debug
orRelease
. - This variable indicates whether the current build is a debug build or a release build.
TARGET_PLATFORM
- The valid values for this variable are
Device
orSimulator
. - Standard make projects build applications, shared libraries, and static libraries for two targets: device and simulator. To select the target for your project build, edit the make file provided with the project and change the
TARGET_PLATFORM
variable to eitherDevice
(actual hardware device or emulator), orSimulator
(Palm OS Garnet or Cobalt Simulator). - Device builds and Simulator builds produce output in different files and in different formats; Developer Suite must be able to differentiate the two.
DEBUG_DEVICE_OUTPUT_DIR
- Indicates the directory relative to the project's directory that contains the final output for a debug build targeting a device platform.
RELEASE_DEVICE_OUTPUT_DIR
- Indicates the directory relative to the project's directory that contains the final output for a release build targeting a device platform.
DEBUG_SIMULATOR_OUTPUT_DIR
- Indicates the directory relative to the project's directory that contains the final output for a debug build targeting a simulator platform.
RELEASE_SIMULATOR_OUTPUT_DIR
- Indicates the directory relative to the project's directory that contains the final output for a release build targeting a simulator platform.
SDK_LOCATION
- Specifies the location of the Palm OS SDK used for this project.
TOOLS_DIR
- Specifies the location of the Palm OS tools used for this project.
- Whenever you build a project, the Palm OS C/C++ Development perspective dynamically determines the location of the Palm OS SDKs and tools used for the project build. These locations are included in the generated file called
auto-generated.mk
, which is placed in the project's root directory. Thisauto-generated.mk
file is used by the default makefiles generated with Palm OS projects. You may include this file in your own make files if you want to determine the values ofSDK_LOCATION
andTOOLS_DIR
at compile time.
The variables in makefiles must be direct assignments of values with no variable substitution. For example,
ARTIFACT_NAME = a
ARTIFACT_NAME := b
are valid in a Developer Suite makefile, but
ARTIFACT_NAME = $(SOME_OTHER_VARIABLE)
is not valid.
You can review the sample code produced by Developer Suite's wizards for more examples of these variables in makefiles.
Managed Make
Managed Make dynamically generates your makefile based on the contents of your project folders. Managed make "watches" your project and automatically updates the makefile when you add files or remove files in your project. To make additional project updates, you use the provided preference panels.
To select build targets (Device or Simulator targets) for managed make projects, select a project and select Project > Properties. In the Properties dialog box, select the C/C++ Build settings group, and change the Active configuration setting appropriately.