Makefile.netware 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. #################################################################
  2. #
  3. ## Makefile for building libcurl.nlm (NetWare version - gnu make)
  4. ## Use: make -f Makefile.netware
  5. ##
  6. ## Comments to: Guenter Knauf <eflash@gmx.net>
  7. #
  8. #################################################################
  9. # Edit the path below to point to the base of your Novell NDK.
  10. BASE = c:/novell
  11. INSTDIR = s:/libcurl
  12. # Edit the path below to point to the base of your Zlib sources.
  13. ZLIB_PATH = ../../../cw/zlib-src-1.1.4
  14. # Edit the vars below to change NLM target settings.
  15. TARGET = libcurl
  16. VERSION = $(LIBCURL_VERSION)
  17. COPYR = Copyright (c) 1996 - 2004, Daniel Stenberg, <daniel@haxx.se>
  18. DESCR = cURL libcurl $(LIBCURL_VERSION_STR) - http://curl.haxx.se
  19. MTSAFE = YES
  20. STACK = 64000
  21. SCREEN = none
  22. #MODULES = libz.nlm
  23. EXPORTS = @libcurl.imp
  24. # Edit the var below to point to your lib architecture.
  25. ifndef LIBARCH
  26. LIBARCH = LIBC
  27. endif
  28. # must be equal to DEBUG or NDEBUG
  29. DB = NDEBUG
  30. # DB = DEBUG
  31. # Optimization: -O<n> or debugging: -g
  32. ifeq ($(DB),NDEBUG)
  33. OPT = -O2
  34. OBJDIR = release
  35. else
  36. OPT = -g
  37. OBJDIR = debug
  38. endif
  39. # Include the version info retrieved from jk_version.h
  40. -include $(OBJDIR)/version.inc
  41. # The following line defines your compiler.
  42. ifdef METROWERKS
  43. CC = mwccnlm
  44. else
  45. CC = gcc
  46. endif
  47. # RM = rm -f
  48. # CP = cp -fv
  49. # if you want to mark the target as MTSAFE you will need a tool for
  50. # generating the xdc data for the linker; here's a minimal tool:
  51. # http://www.gknw.de/development/prgtools/mkxdc.zip
  52. MPKXDC = mkxdc
  53. # Global flags for all compilers
  54. CFLAGS = $(OPT) -D$(DB) -DNETWARE -nostdinc
  55. #CFLAGS += -DHAVE_LIBZ
  56. ifeq ($(CC),mwccnlm)
  57. LD = mwldnlm
  58. LDFLAGS = -nostdlib $(PRELUDE) $(OBJDIR)/*.o -o $(OBJDIR)/$(TARGET).nlm -commandfile
  59. CFLAGS += -gccinc -inline off -opt nointrinsics
  60. CFLAGS += -relax_pointers
  61. #CFLAGS += -w on
  62. ifeq ($(LIBARCH),LIBC)
  63. PRELUDE = $(SDK_LIBC)/imports/libcpre.o
  64. CFLAGS += -align 4 -inst mmx -proc 686
  65. CFLAGS += -D_POSIX_SOURCE
  66. # CFLAGS += -D__ANSIC__
  67. else
  68. PRELUDE = "$(METROWERKS)/Novell Support/libraries/runtime/prelude.obj"
  69. # CFLAGS += -include "$(METROWERKS)/Novell Support/headers/nlm_prefix.h"
  70. CFLAGS += -align 1 -proc 586
  71. endif
  72. else
  73. LD = nlmconv
  74. LDFLAGS = -T
  75. CFLAGS += -fno-builtin -fpack-struct -fpcc-struct-return
  76. CFLAGS += -Wall # -pedantic
  77. ifeq ($(LIBARCH),LIBC)
  78. PRELUDE = $(SDK_LIBC)/imports/libcpre.gcc.o
  79. CFLAGS += -D_POSIX_SOURCE
  80. # CFLAGS += -D__ANSIC__
  81. else
  82. PRELUDE = $(SDK_CLIB)/imports/clibpre.gcc.o
  83. CFLAGS += -include $(BASE)/nlmconv/genlm.h
  84. endif
  85. endif
  86. LDLIBS =
  87. NDK_ROOT = $(BASE)/ndk
  88. SDK_CLIB = $(NDK_ROOT)/nwsdk
  89. SDK_LIBC = $(NDK_ROOT)/libc
  90. SDK_LDAP = $(NDK_ROOT)/cldapsdk/netware
  91. CURL_INC = ../include
  92. INCLUDES = -I$(CURL_INC)
  93. INCLUDES += -I$(ZLIB_PATH)
  94. ifeq ($(LIBARCH),LIBC)
  95. INCLUDES += -I$(SDK_LIBC)/include -I$(SDK_LIBC)/include/nks
  96. INCLUDES += -I$(SDK_LIBC)/include/winsock
  97. INCLUDES += -I$(SDK_LDAP)/libc/inc
  98. else
  99. INCLUDES += -I$(SDK_CLIB)/include/nlm -I$(SDK_CLIB)/include
  100. # INCLUDES += -I$(SDK_CLIB)/include/nlm/obsolete
  101. INCLUDES += -I$(SDK_LDAP)/clib/inc
  102. CFLAGS += -DNETDB_USE_INTERNET
  103. endif
  104. CFLAGS += $(INCLUDES)
  105. ifeq ($(MTSAFE),YES)
  106. XDCDATA = $(OBJDIR)/$(TARGET).xdc
  107. endif
  108. ifeq ($(OSTYPE),linux)
  109. DL = '
  110. -include $(BASE)/nlmconv/ncpfs.inc
  111. endif
  112. OBJS = \
  113. $(OBJDIR)/file.o \
  114. $(OBJDIR)/timeval.o \
  115. $(OBJDIR)/base64.o \
  116. $(OBJDIR)/hostip.o \
  117. $(OBJDIR)/progress.o \
  118. $(OBJDIR)/formdata.o \
  119. $(OBJDIR)/cookie.o \
  120. $(OBJDIR)/http.o \
  121. $(OBJDIR)/sendf.o \
  122. $(OBJDIR)/ftp.o \
  123. $(OBJDIR)/url.o \
  124. $(OBJDIR)/dict.o \
  125. $(OBJDIR)/if2ip.o \
  126. $(OBJDIR)/speedcheck.o \
  127. $(OBJDIR)/getdate.o \
  128. $(OBJDIR)/transfer.o \
  129. $(OBJDIR)/ldap.o \
  130. $(OBJDIR)/ssluse.o \
  131. $(OBJDIR)/version.o \
  132. $(OBJDIR)/getenv.o \
  133. $(OBJDIR)/escape.o \
  134. $(OBJDIR)/mprintf.o \
  135. $(OBJDIR)/telnet.o \
  136. $(OBJDIR)/netrc.o \
  137. $(OBJDIR)/getinfo.o \
  138. $(OBJDIR)/strequal.o \
  139. $(OBJDIR)/easy.o \
  140. $(OBJDIR)/security.o \
  141. $(OBJDIR)/krb4.o \
  142. $(OBJDIR)/memdebug.o \
  143. $(OBJDIR)/http_chunks.o \
  144. $(OBJDIR)/strtok.o \
  145. $(OBJDIR)/connect.o \
  146. $(OBJDIR)/hash.o \
  147. $(OBJDIR)/llist.o \
  148. $(OBJDIR)/multi.o \
  149. $(OBJDIR)/share.o \
  150. $(OBJDIR)/content_encoding.o \
  151. $(OBJDIR)/http_digest.o \
  152. $(OBJDIR)/http_negotiate.o \
  153. $(OBJDIR)/http_ntlm.o \
  154. $(OBJDIR)/md5.o \
  155. $(OBJDIR)/strtoofft.o \
  156. $(OBJDIR)/nwlib.o
  157. all: $(OBJDIR) $(OBJDIR)/version.inc $(OBJDIR)/$(TARGET).nlm
  158. $(OBJDIR)/%.o: %.c
  159. @echo Compiling $<
  160. @$(CC) $(CFLAGS) -c $< -o $@
  161. $(OBJDIR)/version.inc: $(CURL_INC)/curl/curl.h $(OBJDIR)
  162. @echo Creating $@
  163. @awk -f ../packages/netware/get_ver.awk $< > $@
  164. dist: all
  165. -$(RM) $(OBJDIR)/*.o $(OBJDIR)/$(TARGET).map $(OBJDIR)/$(TARGET).ncv
  166. -$(RM) $(OBJDIR)/$(TARGET).def $(OBJDIR)/version.inc $(XDCDATA)
  167. # -$(CP) ../changes.txt $(OBJDIR)/
  168. install: all
  169. @[ -d $(INSTDIR) ] || mkdir $(INSTDIR)
  170. @$(CP) $(TARGET).nlm $(INSTDIR)
  171. clean:
  172. -$(RM) -r $(OBJDIR)
  173. $(OBJDIR):
  174. @mkdir $(OBJDIR)
  175. $(OBJDIR)/$(TARGET).nlm: $(OBJS) $(OBJDIR)/$(TARGET).def $(XDCDATA)
  176. @echo Linking $@
  177. @-$(RM) $@
  178. @$(LD) $(LDFLAGS) $(OBJDIR)/$(TARGET).def
  179. $(OBJDIR)/%.xdc: Makefile.netware
  180. @echo Creating $@
  181. @$(MPKXDC) $(XDCOPT) $@
  182. $(OBJDIR)/%.def: Makefile.netware
  183. @echo $(DL)# DEF file for linking with $(LD)$(DL) > $@
  184. @echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@
  185. @echo $(DL)# All your changes will be lost!!$(DL) >> $@
  186. @echo $(DL)#$(DL) >> $@
  187. @echo $(DL)copyright "$(COPYR)"$(DL) >> $@
  188. @echo $(DL)description "$(DESCR)"$(DL) >> $@
  189. @echo $(DL)version $(VERSION)$(DL) >> $@
  190. ifdef NLMTYPE
  191. @echo $(DL)type $(NLMTYPE)$(DL) >> $@
  192. endif
  193. ifdef STACK
  194. @echo $(DL)stack $(STACK)$(DL) >> $@
  195. endif
  196. ifdef SCREEN
  197. @echo $(DL)screenname "$(SCREEN)"$(DL) >> $@
  198. else
  199. @echo $(DL)screenname "DEFAULT"$(DL) >> $@
  200. endif
  201. ifeq ($(DB),DEBUG)
  202. @echo $(DL)debug$(DL) >> $@
  203. endif
  204. @echo $(DL)threadname "$(TARGET)"$(DL) >> $@
  205. ifdef XDCDATA
  206. @echo $(DL)xdcdata $(XDCDATA)$(DL) >> $@
  207. endif
  208. ifeq ($(LIBARCH),CLIB)
  209. @echo $(DL)start _Prelude$(DL) >> $@
  210. @echo $(DL)exit _Stop$(DL) >> $@
  211. @echo $(DL)import @$(SDK_CLIB)/imports/clib.imp$(DL) >> $@
  212. @echo $(DL)import @$(SDK_CLIB)/imports/threads.imp$(DL) >> $@
  213. @echo $(DL)import @$(SDK_CLIB)/imports/nlmlib.imp$(DL) >> $@
  214. @echo $(DL)import @$(SDK_CLIB)/imports/socklib.imp$(DL) >> $@
  215. @echo $(DL)import @$(SDK_LDAP)/clib/imports/ldapsdk.imp$(DL) >> $@
  216. @echo $(DL)import @$(SDK_LDAP)/clib/imports/ldapssl.imp$(DL) >> $@
  217. @echo $(DL)import @$(SDK_LDAP)/clib/imports/ldapx.imp$(DL) >> $@
  218. @echo $(DL)module clib$(DL) >> $@
  219. else
  220. ifeq ($(LD),nlmconv)
  221. @echo $(DL)flag_on 64$(DL) >> $@
  222. else
  223. @echo $(DL)autounload$(DL) >> $@
  224. endif
  225. @echo $(DL)pseudopreemption$(DL) >> $@
  226. @echo $(DL)start _LibCPrelude$(DL) >> $@
  227. @echo $(DL)exit _LibCPostlude$(DL) >> $@
  228. @echo $(DL)check _LibCCheckUnload$(DL) >> $@
  229. @echo $(DL)import @$(SDK_LIBC)/imports/libc.imp$(DL) >> $@
  230. @echo $(DL)import @$(SDK_LIBC)/imports/netware.imp$(DL) >> $@
  231. @echo $(DL)import @$(SDK_LDAP)/libc/imports/lldapsdk.imp$(DL) >> $@
  232. @echo $(DL)import @$(SDK_LDAP)/libc/imports/lldapssl.imp$(DL) >> $@
  233. @echo $(DL)import @$(SDK_LDAP)/libc/imports/lldapx.imp$(DL) >> $@
  234. @echo $(DL)module libc$(DL) >> $@
  235. endif
  236. ifdef MODULES
  237. @echo $(DL)module $(MODULES)$(DL) >> $@
  238. endif
  239. ifdef EXPORTS
  240. @echo $(DL)export $(EXPORTS)$(DL) >> $@
  241. endif
  242. ifdef IMPORTS
  243. @echo $(DL)import $(IMPORTS)$(DL) >> $@
  244. endif
  245. ifeq ($(LD),nlmconv)
  246. @echo $(DL)input $(OBJS)$(DL) >> $@
  247. @echo $(DL)input $(PRELUDE)$(DL) >> $@
  248. @echo $(DL)output $(TARGET).nlm$(DL) >> $@
  249. endif