mysql.mak 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. # Temporarily here -- later may go into some batch file
  2. # which will set this as an environment variable
  3. PROJECT_ROOT = ..\..
  4. # Module details
  5. MODULE_NAME = phpmysql
  6. MODULE_DESC = "PHP 4.3 - MySQL Extension"
  7. VMAJ = 3
  8. VMIN = 0
  9. VREV = 0
  10. #include the common settings
  11. include $(PROJECT_ROOT)/netware/common.mif
  12. # MYSQL stuff
  13. MYSQL_DIR = P:/APPS/script/sw/mysql
  14. # Build type defaults to 'release'
  15. ifndef BUILD
  16. BUILD = release
  17. endif
  18. # Extensions of all input and output files
  19. .SUFFIXES:
  20. .SUFFIXES: .nlm .lib .obj .cpp .c .msg .mlc .mdb .xdc .d
  21. # Source files
  22. C_SRC = php_mysql.c \
  23. start.c
  24. CPP_SRC_NODIR = $(notdir $(CPP_SRC))
  25. C_SRC_NODIR = $(notdir $(C_SRC))
  26. SRC_DIR = $(dir $(CPP_SRC) $(C_SRC))
  27. # Library files
  28. LIBRARY = $(MYSQL_DIR)/lib/libmysqlclient.lib
  29. # Destination directories and files
  30. OBJ_DIR = $(BUILD)
  31. FINAL_DIR = $(BUILD)
  32. OBJECTS = $(addprefix $(OBJ_DIR)/,$(CPP_SRC_NODIR:.c=.obj) $(C_SRC_NODIR:.c=.obj))
  33. DEPDS = $(addprefix $(OBJ_DIR)/,$(CPP_SRC_NODIR:.c=.d) $(C_SRC_NODIR:.c=.d))
  34. # Binary file
  35. ifndef BINARY
  36. BINARY=$(FINAL_DIR)\$(MODULE_NAME).nlm
  37. endif
  38. # Compile flags
  39. C_FLAGS = -c -maxerrors 25 -msgstyle gcc -wchar_t on -bool on -processor Pentium
  40. C_FLAGS += -nostdinc -nosyspath
  41. C_FLAGS += -relax_pointers # To remove type-casting errors
  42. C_FLAGS += -DNETWARE -DZTS -DNEW_LIBC -DUSE_OLD_FUNCTIONS -DCOMPILE_DL_MYSQL=1
  43. C_FLAGS += -I. -I- -I$(PROJECT_ROOT) -I$(PROJECT_ROOT)/main
  44. C_FLAGS += -I$(PROJECT_ROOT)/ext/standard -I$(PROJECT_ROOT)/netware
  45. C_FLAGS += -I$(PROJECT_ROOT)/zend -I$(PROJECT_ROOT)/tsrm
  46. C_FLAGS += -I$(SDK_DIR)/include -I$(MWCIncludes)
  47. C_FLAGS += -I$(MYSQL_DIR)/include
  48. C_FLAGS += -I$(WINSOCK_DIR)/include/nlm -I$(WINSOCK_DIR)/include
  49. # Extra stuff based on debug / release builds
  50. ifeq '$(BUILD)' 'debug'
  51. SYM_FILE = $(FINAL_DIR)\$(MODULE_NAME).sym
  52. C_FLAGS += -inline smart -sym on -sym codeview4 -opt off -opt intrinsics -DDEBUGGING -DDKFBPON
  53. C_FLAGS += -exc cw -DZEND_DEBUG=1
  54. LD_FLAGS += -sym on -sym codeview4 -osym $(SYM_FILE)
  55. export MWLibraryFiles=$(SDK_DIR)/imports/libcpre.o;mwcrtld.lib
  56. else
  57. C_FLAGS += -opt speed -inline on -inline smart -inline auto -sym off -opt intrinsics
  58. C_FLAGS += -opt level=4 -DZEND_DEBUG=0
  59. LD_FLAGS += -sym off
  60. export MWLibraryFiles=$(SDK_DIR)/imports/libcpre.o;mwcrtl.lib
  61. endif
  62. # Dependencies
  63. MODULE = LibC \
  64. phplib
  65. IMPORT = @$(SDK_DIR)/imports/libc.imp \
  66. @$(SDK_DIR)/imports/ws2nlm.imp \
  67. @$(MPK_DIR)/import/mpkOrg.imp \
  68. @$(PROJECT_ROOT)/netware/phplib.imp
  69. EXPORT = ($(MODULE_NAME)) get_module
  70. API = OutputToScreen
  71. # Virtual paths
  72. vpath %.cpp .
  73. vpath %.c . ..\..\netware
  74. vpath %.obj $(OBJ_DIR)
  75. all: prebuild project
  76. .PHONY: all
  77. prebuild:
  78. @if not exist $(OBJ_DIR) md $(OBJ_DIR)
  79. project: $(BINARY)
  80. @echo Build complete.
  81. $(OBJ_DIR)/%.d: %.cpp
  82. @echo Building Dependencies for $(<F)
  83. @$(CC) -M $< $(C_FLAGS) -o $@
  84. $(OBJ_DIR)/%.d: %.c
  85. @echo Building Dependencies for $(<F)
  86. @$(CC) -M $< $(C_FLAGS) -o $@
  87. $(OBJ_DIR)/%.obj: %.cpp
  88. @echo Compiling $?...
  89. @$(CC) $< $(C_FLAGS) -o $@
  90. $(OBJ_DIR)/%.obj: %.c
  91. @echo Compiling $?...
  92. @$(CC) $< $(C_FLAGS) -o $@
  93. $(BINARY): $(OBJECTS)
  94. @echo Import $(IMPORT) > $(basename $@).def
  95. ifdef API
  96. @echo Import $(API) >> $(basename $@).def
  97. endif
  98. @echo Module $(MODULE) >> $(basename $@).def
  99. ifdef EXPORT
  100. @echo Export $(EXPORT) >> $(basename $@).def
  101. endif
  102. @echo AutoUnload >> $(basename $@).def
  103. ifeq '$(BUILD)' 'debug'
  104. @echo Debug >> $(basename $@).def
  105. endif
  106. @echo Flag_On 0x00000008 >> $(basename $@).def
  107. @echo Start _LibCPrelude >> $(basename $@).def
  108. @echo Exit _LibCPostlude >> $(basename $@).def
  109. $(MPKTOOL) $(XDCFLAGS) $(basename $@).xdc
  110. @echo xdcdata $(basename $@).xdc >> $(basename $@).def
  111. @echo Linking $@...
  112. @echo $(LD_FLAGS) -commandfile $(basename $@).def > $(basename $@).link
  113. @echo $(LIBRARY) $(OBJECTS) >> $(basename $@).link
  114. @$(LINK) @$(basename $@).link
  115. .PHONY: clean
  116. clean: cleanobj cleanbin
  117. .PHONY: cleand
  118. cleand:
  119. @echo Deleting all dependency files...
  120. -@del "$(OBJ_DIR)\*.d"
  121. .PHONY: cleanobj
  122. cleanobj:
  123. @echo Deleting all object files...
  124. -@del "$(OBJ_DIR)\*.obj"
  125. .PHONY: cleanbin
  126. cleanbin:
  127. @echo Deleting binary files...
  128. -@del "$(FINAL_DIR)\$(MODULE_NAME).nlm"
  129. @echo Deleting MAP, DEF files, etc....
  130. -@del "$(FINAL_DIR)\$(MODULE_NAME).map"
  131. -@del "$(FINAL_DIR)\$(MODULE_NAME).def"
  132. -@del "$(FINAL_DIR)\$(MODULE_NAME).link"
  133. ifeq '$(BUILD)' 'debug'
  134. -@del $(FINAL_DIR)\$(MODULE_NAME).sym
  135. endif