# # $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 # PASCAL - if defined means link dll against pascal run-time library # 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) $(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) -fo$@ $< .autodepend