# # Rules for linking a dll # # 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 # 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 dll # # Check if the BASE_BINDIR variable was explicitly specified. !ifdef BASE_BINDIR EXPLICIT_BASE_BINDIR = 1 !endif !ifdef INSTALL_THIS_TARGET !ifndef EXPLICIT_BASE_BINDIR BINDIR = $(CORE_BINDIR) !endif !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)$(LIB_DECORATOR).dll !endif !ifndef INSTALL_THIS_TARGET !ifndef EXPLICIT_BASE_BINDIR # Unless the BASE_BINDIR was explicitly specified, all DLLs are copied # into the common bin directory so that they are always available on # the path for the tests. CORE_TARGET = $(CORE_BINDIR)\$(NAME)$(LIB_DECORATOR).dll !endif !endif !endif all: $(TARGET) $(CORE_TARGET) @echo Do nothing >NUL !ifdef TARGET $(TARGET): $(OBJFILES) $(RESOURCE) @$(MAKE_BINDIR) $(LD) @&&! $(COMMON_LFLAGS) $(DLL_LFLAGS) $(LFLAGS) + $(DLL_STARTUP_OBJ) $(LIBFILES) $(OBJFILES), + $(TARGET),, + $(COMMON_LIBS),, + $(RESOURCE) ! !ifndef DEBUG @del $(TARGET:.dll=.tds) !endif !ifdef CORE_TARGET $(CORE_TARGET): $(TARGET) @copy $(TARGET) $(CORE_TARGET) >NUL !ifdef DEBUG @copy $(TARGET:.dll=.tds) $(CORE_TARGET:.dll=.tds) >NUL !endif !endif !endif !include <$(ACE_ROOT)\include\makeinclude\clean.bor> INSTALL_TYPES = dll lib includes !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 = $(OBJDIR) !ifdef DEBUG !ifndef NO_FULL_PATH USE_FULL_PATH = 1 !endif !endif .cpp.obj: @$(MAKE_OBJDIR) !ifdef USE_FULL_PATH @for /F "delims=;" %i in ('cd') do @echo $(CC) $(COMMON_CFLAGS) $(DLL_CFLAGS) $(CFLAGS) -c -n$(@D) %i\$(<:.\=) @for /F "delims=;" %i in ('cd') do @$(CC) $(COMMON_CFLAGS) $(DLL_CFLAGS) $(CFLAGS) -c -n$(@D) %i\$(<:.\=) !else $(CC) $(COMMON_CFLAGS) $(DLL_CFLAGS) $(CFLAGS) -c -n$(@D) $< !endif .c.obj: @$(MAKE_OBJDIR) !ifdef USE_FULL_PATH @for /F "delims=;" %i in ('cd') do @echo $(CC) $(COMMON_CFLAGS) $(DLL_CFLAGS) $(CFLAGS) -c -n$(@D) %i\$(<:.\=) @for /F "delims=;" %i in ('cd') do @$(CC) $(COMMON_CFLAGS) $(DLL_CFLAGS) $(CFLAGS) -c -n$(@D) %i\$(<:.\=) !else $(CC) $(COMMON_CFLAGS) $(DLL_CFLAGS) $(CFLAGS) -c -n$(@D) $< !endif .rc.res: @$(MAKE_OBJDIR) $(RC) -fo$@ $< .autodepend