openssl.mak 4.7 KB

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