|
|
1.1 ! root 1: # build/Common.bmake ! 2: # ! 3: # Global build system setup file for Borland Make/BCC ! 4: # ! 5: # $Id: Common.bmake,v 1.47 2006/12/29 02:54:32 rswindell Exp $ ! 6: # ! 7: ############################################################################# ! 8: # # ! 9: # Common macro setup for Borland make # ! 10: # # ! 11: # Common Build Macros REQUIRED: # ! 12: # SRC_ROOT - *MUST* be set to the src dir # ! 13: # # ! 14: # Common Build Macros Used: # ! 15: # DEBUG - Create a debug build # ! 16: # RELEASE - Create a release build # ! 17: # (Mutually exclusive, if both are set, RELEASE # ! 18: # is cleared) # ! 19: # DONT_CLOBBER_CC - Do not change the default setting of CC # ! 20: # OBJPATH_SUFFIX - Suffix appended to OBJPATH usefull for compiling # ! 21: # different options of the same source file # ! 22: # # ! 23: # Common Build Macros Defined: # ! 24: # DELETE - Delete files (Preferrably verbose) # ! 25: # OBJODIR - Object output dir # ! 26: # LIBODIR - Library output dir # ! 27: # EXEODIR - Executable output dir # ! 28: # DEBUG - Set for debug builds # ! 29: # RELEASE - Set for release builds # ! 30: # One of DEBUG or RELEASE is always set! # ! 31: # QUIET - Target command prefix to show/not show commands # ! 32: # (Toggled off by setting VERBOSE) # ! 33: # CFLAGS - Common C and C++ compiler flags # ! 34: # CCFLAGS - C specific compiler flags # ! 35: # CXXFLAGS - C++ specific compiler flags # ! 36: # LDFLAGS - Linker flags # ! 37: # CC - C compiler # ! 38: # CXX - C++ compiler # ! 39: # EXEFILE - Executable file extension (Includes .) # ! 40: # OFILE - Object file extension (Includes .) # ! 41: # SOFILE - Shared object (DLL) file extension (Includes .) # ! 42: # LIBFILE - Static library file extension (Include .) # ! 43: # LIBPREFIX - Prefix to library filename # ! 44: # LIBS - Library names (Appropriate for dependencies) # ! 45: # LIB_LDFLAGS - Libraries appropriate for link command-line usage # ! 46: # COMPILE_MSG - Message saying a target is being compiled # ! 47: # DIRSEP - The directory seperator this system likes most # ! 48: # VERSION - Synchronet version number in MAJOR.MINOR format # ! 49: # (Numeric ONLY) # ! 50: # OUTPUT - Compiler flag specifying output filename # ! 51: # LOUTPUT - Linker flag specifying output filename # ! 52: # XPDEV_SRC - Path to xpdev # ! 53: # UIFC_SRC - Path to uifc # ! 54: # CIOLIB_SRC - Path to ciolib # ! 55: # SMBLIB_SRC - Path to smblib # ! 56: # MT_CFLAGS - CFLAGS for building MT objects # ! 57: # MT_LDFLAGS - LDFLAGS for linking MT targets # ! 58: # UL_PRE - Use Library prefix (*nix is -l) # ! 59: # UL_SUF - Use Library siffix (bcc is .lib) # ! 60: # # ! 61: # Common Targets Defined: # ! 62: # Implicit C and C++ targets # ! 63: # "clean" target # ! 64: # Output directory targets # ! 65: # # ! 66: ############################################################################# ! 67: ! 68: .autodepend ! 69: .cacheautodepend ! 70: ! 71: # Macros ! 72: # Set VERSION ! 73: !ifndef VERSION ! 74: VERSION = 3.14 ! 75: !endif ! 76: ! 77: # Set DEBUG ! 78: !ifdef DEBUG ! 79: ! ifdef RELEASE ! 80: ! undef RELEASE ! 81: ! endif ! 82: !endif ! 83: ! 84: !ifndef DEBUG ! 85: ! ifndef RELEASE ! 86: DEBUG = 1 ! 87: ! endif ! 88: !endif ! 89: ! 90: # VERBOSE/QUIET ! 91: !ifndef VERBOSE ! 92: QUIET = @ ! 93: !endif ! 94: ! 95: # OS-specific ! 96: DIRSEP = \ # This comment is necessary ! 97: EXEFILE = .exe ! 98: OFILE = .obj ! 99: SOFILE = .dll ! 100: LIBFILE = .lib ! 101: DELETE = echo y | del ! 102: IFNOTEXIST = if not exist $@ ! 103: UL_PRE = ! 104: UL_SUF = $(LIBFILE) ! 105: ! 106: # Compiler-specific ! 107: !ifdef msc # Microsoft Visual C++ ! 108: CC = cl ! 109: LD = link ! 110: CCPRE = msvc.win32 ! 111: OUTPUT = -Fo ! 112: LOUTPUT = -Fe ! 113: CFLAGS = -nologo -MTd ! 114: LDFLAGS = $(CFLAGS) ! 115: !ifdef DEBUG ! 116: CFLAGS = $(CFLAGS) -Yd ! 117: !endif ! 118: ! 119: !else # Borland C++ ! 120: ! 121: CC = bcc32 ! 122: CCPRE = bcc ! 123: LD = ilink32 ! 124: OUTPUT = -o ! 125: LOUTPUT = $(OUTPUT) ! 126: CFLAGS = -q ! 127: LDFLAGS = $(CFLAGS) ! 128: CFLAGS = $(CFLAGS) -M -X- ! 129: MT_CFLAGS = -WM ! 130: MT_LDFLAGS = -WM ! 131: !ifdef DEBUG ! 132: CFLAGS = $(CFLAGS) -v ! 133: !endif ! 134: !endif ! 135: MKSHLIB = $(CC) -WD ! 136: ! 137: # Common compiler flags ! 138: !ifdef DEBUG ! 139: CFLAGS = $(CFLAGS) -Od -D_DEBUG ! 140: !endif ! 141: ! 142: # Debug or release build? ! 143: !ifdef DEBUG ! 144: BUILD = debug ! 145: !else ! 146: BUILD = release ! 147: !endif ! 148: !ifndef BUILDPATH ! 149: BUILDPATH = $(BUILD) ! 150: !endif ! 151: ! 152: OBJODIR = $(CCPRE).win32.obj.$(BUILDPATH) ! 153: MTOBJODIR = $(CCPRE).win32.obj.$(BUILDPATH)_mt ! 154: LIBODIR = $(CCPRE).win32.lib.$(BUILDPATH) ! 155: EXEODIR = $(CCPRE).win32.exe.$(BUILDPATH) ! 156: ! 157: # Paths ! 158: XPDEV_SRC = $(SRC_ROOT)$(DIRSEP)xpdev ! 159: CIOLIB_SRC = $(SRC_ROOT)$(DIRSEP)conio ! 160: SMBLIB_SRC = $(SRC_ROOT)$(DIRSEP)smblib ! 161: UIFC_SRC = $(SRC_ROOT)$(DIRSEP)uifc ! 162: ! 163: # Pull in lib-specific flags ! 164: !include $(XPDEV_SRC)$(DIRSEP)Common.make ! 165: !include $(XPDEV_SRC)$(DIRSEP)Common.bmake ! 166: !include $(SMBLIB_SRC)$(DIRSEP)Common.make ! 167: !include $(CIOLIB_SRC)$(DIRSEP)Common.make ! 168: !include $(UIFC_SRC)$(DIRSEP)Common.make ! 169: ! 170: .path.c = . ! 171: .path.cpp = . ! 172: ! 173: !include targets.mk ! 174: !include $(SRC_ROOT)/build/rules.mk ! 175: !include objects.mk # defines $(OBJS) ! 176: ! 177: .SUFFIXES ! 178: .SUFFIXES .cpp .c ! 179: # Implicit C Compile Rule ! 180: .c{$(OBJODIR)}$(OFILE): ! 181: $(QUIET)$(CC) $(CFLAGS) $(CCFLAGS) -n$(OBJODIR) -c $< $(OUTPUT)$@ ! 182: ! 183: # Implicit C++ Compile Rule ! 184: .cpp{$(OBJODIR)}$(OFILE): ! 185: $(QUIET)$(CC) $(CFLAGS) $(CXXFLAGS) -n$(OBJODIR) -c $< $(OUTPUT)$@ ! 186: ! 187: # Implicit MT C Compile Rule ! 188: .c{$(MTOBJODIR)}$(OFILE): ! 189: $(QUIET)$(CC) $(CFLAGS) $(CCFLAGS) -n$(MTOBJODIR) $(MT_CFLAGS) -c $< $(OUTPUT)$@ ! 190: ! 191: # Implicit MT C++ Compile Rule ! 192: .cpp{$(MTOBJODIR)}$(OFILE): ! 193: $(QUIET)$(CC) $(CFLAGS) $(CXXFLAGS) -n$(MTOBJODIR) $(MT_CFLAGS) -c $< $(OUTPUT)$@ ! 194: ! 195: $(XPDEV_LIB): xpdev ! 196: xpdev: ! 197: $(COMSPEC) <<| ! 198: set VERSION=$(VERSION) ! 199: set DEBUG=$(DEBUG) ! 200: set RELEASE=$(RELEASE) ! 201: set VERBOSE=$(VERBOSE) ! 202: set BUILDPATH=$(BUILDPATH) ! 203: set USE_SDL=$(USE_SDL) ! 204: cd $(XPDEV_SRC) ! 205: $(MAKE) -$(MAKEFLAGS) lib ! 206: exit ! 207: | ! 208: ! 209: $(XPDEV-MT_LIB): xpdev-mt ! 210: xpdev-mt: ! 211: $(COMSPEC) <<| ! 212: set VERSION=$(VERSION) ! 213: set DEBUG=$(DEBUG) ! 214: set RELEASE=$(RELEASE) ! 215: set VERBOSE=$(VERBOSE) ! 216: set BUILDPATH=$(BUILDPATH) ! 217: set USE_SDL=$(USE_SDL) ! 218: cd $(XPDEV_SRC) ! 219: $(MAKE) -$(MAKEFLAGS) mtlib ! 220: exit ! 221: | ! 222: ! 223: $(SMBLIB): smblib ! 224: smblib: ! 225: $(COMSPEC) <<| ! 226: set VERSION=$(VERSION) ! 227: set DEBUG=$(DEBUG) ! 228: set RELEASE=$(RELEASE) ! 229: set VERBOSE=$(VERBOSE) ! 230: set BUILDPATH=$(BUILDPATH) ! 231: cd $(SMBLIB_SRC) ! 232: $(MAKE) -$(MAKEFLAGS) lib ! 233: exit ! 234: | ! 235: ! 236: $(CIOLIB-MT): ciolib-mt ! 237: ciolib-mt: ! 238: $(COMSPEC) <<| ! 239: set VERSION=$(VERSION) ! 240: set DEBUG=$(DEBUG) ! 241: set RELEASE=$(RELEASE) ! 242: set VERBOSE=$(VERBOSE) ! 243: set BUILDPATH=$(BUILDPATH) ! 244: set USE_SDL=$(USE_SDL) ! 245: set STATIC_SDL=$(STATIC_SDL) ! 246: cd $(CIOLIB_SRC) ! 247: $(MAKE) -$(MAKEFLAGS) mtlib ! 248: exit ! 249: | ! 250: ! 251: $(UIFCLIB): uifc ! 252: uifc: ! 253: $(COMSPEC) <<| ! 254: set VERSION=$(VERSION) ! 255: set DEBUG=$(DEBUG) ! 256: set RELEASE=$(RELEASE) ! 257: set VERBOSE=$(VERBOSE) ! 258: set BUILDPATH=$(BUILDPATH) ! 259: set USE_SDL=$(USE_SDL) ! 260: cd $(UIFC_SRC) ! 261: $(MAKE) -$(MAKEFLAGS) lib ! 262: exit ! 263: | ! 264: ! 265: $(UIFCLIB-MT): uifc-mt ! 266: uifc-mt: ! 267: $(COMSPEC) <<| ! 268: set VERSION=$(VERSION) ! 269: set DEBUG=$(DEBUG) ! 270: set RELEASE=$(RELEASE) ! 271: set VERBOSE=$(VERBOSE) ! 272: set BUILDPATH=$(BUILDPATH) ! 273: set USE_SDL=$(USE_SDL) ! 274: set STATIC_SDL=$(STATIC_SDL) ! 275: cd $(UIFC_SRC) ! 276: $(MAKE) -$(MAKEFLAGS) mtlib ! 277: exit ! 278: |
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.