ldap.mak 4.4 KB

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