Makefile-SquiLu-ios-through-linux 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. MYSDKPREFIX=$(HOME)/local/theos/sdks/iPhoneOS5.1.sdk/usr
  2. INC = -Iinclude -Isqstdlib -Isquirrel -I../SquiLu-ext -I../myaxtls -I../mpdecimal-ios \
  3. -I../md4c/md4c -I../md4c/md2html -I../gumbo -I.. -I../minizip \
  4. -I$(MYSDKPREFIX)/include -I$(MYSDKPREFIX)/include/c++/4.2.1
  5. CFLAGS = $(INC) -O3 -Wall -fno-strict-aliasing \
  6. -D_DEBUG_DUMP33=1 \
  7. -D_FILE_OFFSET_BITS=64 \
  8. -DHAS_UNIX_DOMAIN_SOCKETS=1 \
  9. -DHAVE_STDINT=1 \
  10. -DNDEBUG=1 \
  11. -DNEED_SUBLATIN_C2=1 \
  12. -DNO_EXCEPTION_KEY_NOT_FOUND0=1 \
  13. -DNO_GARBAGE_COLLECTOR00=1 \
  14. -DNO_POPEN=1 \
  15. -DNO_SSL_DL=1 \
  16. -DONLY_ASCII=1 \
  17. -DPDF_USING_ZLIB=1 \
  18. -DPROFILE_SQVM0=1 \
  19. -DRS232_STATIC=1 \
  20. -DSQ_JIT_LLVM44=1 \
  21. -DSQLITE_DEFAULT_AUTOVACUUM=1 \
  22. -DSQLITE_DEFAULT_FILE_FORMAT=4 \
  23. -DSQLITE_DEFAULT_FOREIGN_KEYS=1 \
  24. -DSQLITE_ENABLE_COLUMN_METADATA=1 \
  25. -DSQLITE_ENABLE_EXTENSION_FUNCTIONS=1 \
  26. -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 \
  27. -DSQLITE_ENABLE_FTS4=1 \
  28. -DSQLITE_ENABLE_FTS5=1 \
  29. -DSQLITE_ENABLE_RTREE=1 \
  30. -DSQLITE_ENABLE_STAT4=1 \
  31. -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 \
  32. -DSQLITE_HAS_CODEC=1 \
  33. -DSQLITE_OMIT_TCL_VARIABLE=1 \
  34. -DSQLITE_SOUNDEX=1 \
  35. -DSQLITE_USE_URI=1 \
  36. -DUSE_BITVECTOR=1 \
  37. -DSQ_SUBLATIN=1 \
  38. -DSQUSEDECIMAL64x=1 \
  39. -DSQUSEDOUBLE=1 \
  40. -D_SQ64=1 \
  41. -DSSL_STATIC_LIBRARY=1 \
  42. -DTHREADSAFE=1 \
  43. -DUSE_AXTLS=1 \
  44. -DUSE_AXTLS_ON_MEMORY=1 \
  45. -DUSE_OPENSSL2=1 \
  46. -DUSE_SIGNAL_HANDLER=1 \
  47. -DWITH_DAD_EXTRAS=1 \
  48. -DWITH_MYSQL2=1 \
  49. -DWITH_POSTGRESQL2=1 \
  50. -DWITH_UUID=1 \
  51. -DSQLITE_ENABLE_JSON1=1 \
  52. -DSQLITE_OMIT_PREPARED=1 \
  53. -DTARGET_IOS=1 -DWITHOUTH_SHA512=1 \
  54. -DSQ_USE_MKSTEMP=1 \
  55. -DSQ_USE_LOCALTIME_R=1 \
  56. -DSQ_ENABLE_INCLUDES=1 \
  57. -DSLAVE_VM_WITH_OS_THREADS=1 \
  58. -DSQLITE_ENABLE_SORTER_REFERENCES=1
  59. RESINC =
  60. LIBDIR = -L$(MYSDKPREFIX)/lib -L$(MYSDKPREFIX)/lib/system -Llib
  61. LIB = -lm
  62. LDFLAGS = -lpthread -ldl -lz
  63. CC = ios-clang
  64. CXX = ios-clang++ -std=c++11
  65. CFLAGS += -objc-arc
  66. CFLAGS += -fblocks
  67. CFLAGS += -g0 -O3 -mios-version-min=5.0.0 -stdlib=libc++ -stdlib=libstdc++
  68. CPPFLAGS += -objc-arc
  69. CPPFLAGS += -fblocks
  70. CPPFLAGS += -g0 -O3
  71. LDFLAGS += -framework Foundation -lstdc++ -lc++
  72. SOURCES= sq/sq.c \
  73. sqstdlib/sqstdaux.cpp \
  74. sqstdlib/sqstdblob.cpp \
  75. sqstdlib/sqstdio.cpp \
  76. sqstdlib/sqstdmath.cpp \
  77. sqstdlib/sqstdrex.cpp \
  78. sqstdlib/sqstdstream.cpp \
  79. sqstdlib/sqstdstring.cpp \
  80. sqstdlib/sqstdsystem.cpp \
  81. ../SquiLu-ext/dynamic_library.cpp \
  82. ../SquiLu-ext/fpdf.cpp \
  83. ../SquiLu-ext/lua_socket.cpp \
  84. ../SquiLu-ext/mongoose.c \
  85. ../SquiLu-ext/pdf-font.cpp \
  86. ../SquiLu-ext/sq_base64.cpp \
  87. ../SquiLu-ext/sq_fpdf.cpp \
  88. ../SquiLu-ext/sq_fs.cpp \
  89. ../SquiLu-ext/sqlite3.c \
  90. ../SquiLu-ext/sq_mix.cpp \
  91. ../SquiLu-ext/sq_mongoose.cpp \
  92. ../SquiLu-ext/sq_pack.cpp \
  93. ../SquiLu-ext/sq_mysql.cpp \
  94. ../SquiLu-ext/sq_postgresql.cpp \
  95. ../SquiLu-ext/sqratimport.cpp \
  96. ../SquiLu-ext/sq_rs232.c \
  97. ../SquiLu-ext/sq_slave_vm.cpp \
  98. ../SquiLu-ext/sq_socket.cpp \
  99. ../SquiLu-ext/sq_sqlite3.cpp \
  100. ../SquiLu-ext/sq_bitvector.cpp \
  101. ../SquiLu-ext/sq_tinyxml2.cpp \
  102. ../SquiLu-ext/sq_zlib.cpp \
  103. ../SquiLu-ext/tinyxml2.cpp \
  104. ../SquiLu-ext/dad_utils.cpp \
  105. ../SquiLu-ext/sq_tweetnacl.cpp \
  106. ../SquiLu-ext/tweetnacl.c \
  107. ../SquiLu-ext/randombytes.c \
  108. ../SquiLu-ext/sq_fossil.cpp \
  109. ../SquiLu-ext/fossil-delta.c \
  110. ../SquiLu-ext/sq_nn.cpp \
  111. ../SquiLu-ext/nn.c \
  112. squirrel/lua-regex.c \
  113. squirrel/sqapi.cpp \
  114. squirrel/sqbaselib.cpp \
  115. squirrel/sqclass.cpp \
  116. squirrel/sqcompiler.cpp \
  117. squirrel/sqdebug.cpp \
  118. squirrel/sqfuncstate.cpp \
  119. squirrel/sqlexer.cpp \
  120. squirrel/sq_lexer.cpp \
  121. squirrel/sqmem.cpp \
  122. squirrel/sqobject.cpp \
  123. squirrel/sqstate.cpp \
  124. squirrel/sqtable.cpp \
  125. squirrel/sqvm.cpp \
  126. squirrel/sublatin.c
  127. AXTLS_PATH := ../myaxtls
  128. AXTLS_SRC_FILES := \
  129. ../SquiLu-ext/sq_axtls.c \
  130. $(AXTLS_PATH)/aes.c \
  131. $(AXTLS_PATH)/asn1.c \
  132. $(AXTLS_PATH)/bigint.c \
  133. $(AXTLS_PATH)/crypto_misc.c \
  134. $(AXTLS_PATH)/gen_cert.c \
  135. $(AXTLS_PATH)/hmac.c \
  136. $(AXTLS_PATH)/loader.c \
  137. $(AXTLS_PATH)/md5.c \
  138. $(AXTLS_PATH)/openssl.c \
  139. $(AXTLS_PATH)/os_port.c \
  140. $(AXTLS_PATH)/p12.c \
  141. $(AXTLS_PATH)/rc4.c \
  142. $(AXTLS_PATH)/rsa.c \
  143. $(AXTLS_PATH)/sha1.c \
  144. $(AXTLS_PATH)/sha256.c \
  145. $(AXTLS_PATH)/tls1.c \
  146. $(AXTLS_PATH)/tls1_clnt.c \
  147. $(AXTLS_PATH)/tls1_svr.c \
  148. $(AXTLS_PATH)/x509.c
  149. # $(AXTLS_PATH)/sha384.c
  150. # $(AXTLS_PATH)/sha512.c
  151. AXTLS_OPT_DEFINES := \
  152. -DCONFIG_SSL_ENABLE_CLIENT2=1 \
  153. -DSSL_STATIC_LIBRARY=1 \
  154. -DAXTLS_LIBRARY=1 \
  155. -DCONFIG_OPENSSL_COMPATIBLE=1 \
  156. -DCONFIG_SSL_CTX_MUTEXING=1 \
  157. -DCONFIG_SSL_USE_DEFAULT_KEY=1 \
  158. -DHAVE_STDINT=1 \
  159. -DNO_SSL_DL=1 \
  160. -DUSE_AXTLS=1 \
  161. -DUSE_AXTLS_ON_MEMORY=1 \
  162. -DSSL_STATIC_LIBRARY=1 \
  163. -DCONFIG_BIGINT_BARRETT=1
  164. AXTLS_INCLUDE_DIRS := -I$(AXTLS_PATH)
  165. SOURCES += $(AXTLS_SRC_FILES)
  166. CFLAGS += $(AXTLS_OPT_DEFINES)
  167. GUMBO_PATH := ../gumbo
  168. GUMBO_SRC_FILES := \
  169. ../SquiLu-ext/sq_gumbo.cpp \
  170. $(GUMBO_PATH)/attribute.c \
  171. $(GUMBO_PATH)/char_ref.c \
  172. $(GUMBO_PATH)/error.c \
  173. $(GUMBO_PATH)/parser.c \
  174. $(GUMBO_PATH)/string_buffer.c \
  175. $(GUMBO_PATH)/string_piece.c \
  176. $(GUMBO_PATH)/tag.c \
  177. $(GUMBO_PATH)/tokenizer.c \
  178. $(GUMBO_PATH)/utf8.c \
  179. $(GUMBO_PATH)/util.c \
  180. $(GUMBO_PATH)/vector.c
  181. GUMBO_INCLUDE_DIRS := -I$(GUMBO_PATH)
  182. SOURCES += $(GUMBO_SRC_FILES)
  183. MINIZIP_PATH := ../minizip
  184. MINIZIP_SRC_FILES := \
  185. $(MINIZIP_PATH)/ioapi.c \
  186. $(MINIZIP_PATH)/mztools.c \
  187. $(MINIZIP_PATH)/unzip.c \
  188. $(MINIZIP_PATH)/zip.c
  189. # ../SquiLu-ext/sq_miniz.cpp \
  190. MINIZIP_OPT_DEFINES := \
  191. -DNOCRYPT
  192. MINIZIP_INCLUDE_DIRS := -I$(MINIZIP_PATH)
  193. SOURCES += $(MINIZIP_SRC_FILES)
  194. CFLAGS += $(MINIZIP_OPT_DEFINES)
  195. MPDECIMAL_PATH := ../mpdecimal-ios
  196. MPDECIMAL_SRC_FILES := \
  197. ../SquiLu-ext/sq_decimal.cpp \
  198. $(MPDECIMAL_PATH)/basearith.c \
  199. $(MPDECIMAL_PATH)/context.c \
  200. $(MPDECIMAL_PATH)/constants.c \
  201. $(MPDECIMAL_PATH)/convolute.c \
  202. $(MPDECIMAL_PATH)/crt.c \
  203. $(MPDECIMAL_PATH)/mpdecimal.c \
  204. $(MPDECIMAL_PATH)/mpsignal.c \
  205. $(MPDECIMAL_PATH)/difradix2.c \
  206. $(MPDECIMAL_PATH)/fnt.c \
  207. $(MPDECIMAL_PATH)/fourstep.c \
  208. $(MPDECIMAL_PATH)/io.c \
  209. $(MPDECIMAL_PATH)/memory.c \
  210. $(MPDECIMAL_PATH)/numbertheory.c \
  211. $(MPDECIMAL_PATH)/sixstep.c \
  212. $(MPDECIMAL_PATH)/transpose.c
  213. MPDECIMAL_OPT_DEFINES := \
  214. -DMPD_PREC=9 \
  215. -DMPD_DPREC=18 \
  216. -DCONFIG_32=1 \
  217. -DANSI=1 \
  218. -DCOMPILING_FOR_IOS=1 \
  219. -DWITH_MPDECIMAL=1
  220. MPDECIMAL_INCLUDE_DIRS := -I$(MPDECIMAL_PATH)
  221. SOURCES += $(MPDECIMAL_SRC_FILES)
  222. CFLAGS += $(MPDECIMAL_OPT_DEFINES)
  223. LIBDISCOUNT_PATH := ../md4c
  224. LIBDISCOUNT_SRC_FILES= \
  225. ../SquiLu-ext/sq_markdown.cpp \
  226. $(LIBDISCOUNT_PATH)/md4c/md4c.c \
  227. $(LIBDISCOUNT_PATH)/md2html/entity.c \
  228. $(LIBDISCOUNT_PATH)/md2html/render_html.c
  229. LIBDISCOUNT_INCLUDE_DIRS := -I$(LIBDISCOUNT_PATH)/md4c -I$(LIBDISCOUNT_PATH)/md2html
  230. SOURCES += $(LIBDISCOUNT_SRC_FILES)
  231. CFLAGS += -DMD4C_USE_UTF8
  232. #SOURCES += ../SquiLu-ext/sq_fltk.cpp ../SquiLu-ext/sq_parsecsv.cpp \
  233. # ../SquiLu-ext/sq_postgresql.cpp ../SquiLu-ext/sq_zmq3.cpp
  234. #OBJECTS = $(SOURCES:.c=.o)
  235. %.o: %.c
  236. $(CC) -c -o $@ $< $(CFLAGS)
  237. %.o: %.cpp
  238. $(CXX) -c -o $@ $< $(CPPFLAGS)
  239. squilu-ios: $(OBJECTS)
  240. $(CC) $(CFLAGS) -o $@ $(SOURCES) $(LIBDIR) $(LDFLAGS)
  241. #$(CXX) $(CFLAGS) -o $@ $(OBJECTS) $(LIBDIR) $(LDFLAGS)