diff options
Diffstat (limited to 'trunk/ACE/include/makeinclude/build_exe.bor')
-rw-r--r-- | trunk/ACE/include/makeinclude/build_exe.bor | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/trunk/ACE/include/makeinclude/build_exe.bor b/trunk/ACE/include/makeinclude/build_exe.bor new file mode 100644 index 00000000000..3387e6e5cf5 --- /dev/null +++ b/trunk/ACE/include/makeinclude/build_exe.bor @@ -0,0 +1,114 @@ +# +# $Id$ +# +# Rules for building an executable +# +# Inputs: +# ~~~~~~~ +# NAME - undecorated name of target +# CFLAGS - extra compiler flags for building target +# CPPDIR - list of directories containing source files +# OBJFILES - list of (non-system) object files +# LIBFILES - list of (non-system) libraries +# STATIC - if defined means link exe with static libraries +# DEBUG - if defined means building with debug information +# UNICODE - if defined when building a unicode exe +# + +# Check if the output location was explicitly specified. +!if $d(BASE_BINDIR) || $d(BINDIR) +EXPLICIT_BINDIR = 1 +!endif + +!include <$(ACE_ROOT)\include\makeinclude\decorator.bor> +!include <$(ACE_ROOT)\include\makeinclude\outputdir.bor> +!include <$(ACE_ROOT)\include\makeinclude\compiler.bor> + +!ifdef NAME +!ifndef TARGET +TARGET = $(BINDIR)\$(NAME).exe +!endif +!ifdef INSTALL_THIS_TARGET +!ifndef EXPLICIT_BINDIR +CORE_TARGET = $(CORE_BINDIR)\$(NAME).exe +!endif +!endif +!endif + +all: $(TARGET) $(CORE_TARGET) + @echo Do nothing >NUL + +!ifdef TARGET +$(TARGET): $(OBJFILES) $(RESOURCE) + @$(MAKE_BINDIR) + $(LD) @&&! + $(COMMON_LFLAGS) $(EXE_LFLAGS) $(LFLAGS) + + $(EXE_STARTUP_OBJ) $(PACKAGES) $(LIBFILES) $(OBJFILES), + + $(TARGET),, + + $(COMMON_LIBS),, + + $(RESOURCE) +! +!ifndef DEBUG + @del $(TARGET:.exe=.tds) +!endif +!ifdef CORE_TARGET +$(CORE_TARGET): $(TARGET) + @copy $(TARGET) $(CORE_TARGET) >NUL +!ifdef DEBUG + @copy $(TARGET:.exe=.tds) $(CORE_TARGET:.exe=.tds) >NUL +!endif +!endif +!endif + + +!include <$(ACE_ROOT)\include\makeinclude\clean.bor> + +INSTALL_TYPES = exe + +!include <$(ACE_ROOT)\include\makeinclude\install.bor> + +!ifdef CPPDIR +.path.cpp = $(CPPDIR) +!endif + +!ifdef CDIR +.path.c = $(CDIR) +!endif + +!ifdef RESDIR +.path.rc = $(RESDIR) +!else +.path.rc = . +!endif + +.path.$(OBJ_EXT) = $(OBJDIR) + +!ifdef DEBUG +!ifndef NO_FULL_PATH +USE_FULL_PATH = 1 +!endif +!endif + +.cpp.$(OBJ_EXT): + @$(MAKE_OBJDIR) +!ifdef USE_FULL_PATH + @for /F "delims=;" %i in ('cd') do @echo $(CC) $(COMMON_CFLAGS) $(EXE_CFLAGS) $(CFLAGS) -c -n$(@D) %i\$(<:.\=) + @for /F "delims=;" %i in ('cd') do @$(CC) $(COMMON_CFLAGS) $(EXE_CFLAGS) $(CFLAGS) -c -n$(@D) %i\$(<:.\=) +!else + $(CC) $(COMMON_CFLAGS) $(EXE_CFLAGS) $(CFLAGS) -c -n$(@D) $< +!endif + +.c.$(OBJ_EXT): + @$(MAKE_OBJDIR) +!ifdef USE_FULL_PATH + @for /F "delims=;" %i in ('cd') do @echo $(CC) $(COMMON_CFLAGS) $(EXE_CFLAGS) $(CFLAGS) -c -n$(@D) %i\$(<:.\=) + @for /F "delims=;" %i in ('cd') do @$(CC) $(COMMON_CFLAGS) $(EXE_CFLAGS) $(CFLAGS) -c -n$(@D) %i\$(<:.\=) +!else + $(CC) $(COMMON_CFLAGS) $(EXE_CFLAGS) $(CFLAGS) -c -n$(@D) $< +!endif + +.rc.res: + @$(MAKE_OBJDIR) + $(RC) $(RC_FLAGS) -fo$@ $< + +.autodepend |