3 WARN
:=-Wall
-Wstrict-prototypes
10 sublibs
:= $(shell ls ..
/libs
)
11 sublibs_headers
:= $(addprefix -I..
/libs
/, $(sublibs
))
12 sublibs_headers
:= $(addsuffix /_build
/headers
, $(sublibs_headers
))
14 HEADERS
+= $(sublibs_headers
)
16 #sublibs_L := $(addprefix -L../libs/, $(sublibs))
17 #sublibs_L := $(addsuffix /_build/lib, $(sublibs_L))
18 sublibs_L
:= $(LINKDIRFLAG
)..
/_build
/lib
20 #sublibs_l := $(addprefix -l, $(sublibs))
21 sublibs_l
:= $(LINKLIBFLAG
)iovmall
$(DLL_LIB_SUFFIX
)
23 #sublibs_DL := $(addprefix -L../libs/, $(sublibs))
24 #sublibs_DL := $(addsuffix _build/dll, $(sublibs_DL))
25 sublibs_DL
:= $(LINKDIRFLAG
)..
/_build
/dll
27 CFLAGS
= $(OPTIMIZE
) $(WARN
)
29 #LFLAGS +=-lMallocDebug
36 SYS ?
= $(shell uname
-s
)
38 # NEEDS_DL - Needs -ldl for dlopen and friends.
40 NEEDS_DL
:= Darwin Linux SunOS syllable
41 ifneq (,$(findstring $(SYS
),$(NEEDS_DL
)))
45 NEEDS_M
:= FreeBSD Linux NetBSD DragonFly
46 ifneq (,$(findstring $(SYS
),$(NEEDS_M
)))
50 #NEEDS_PTHREAD := FreeBSD Linux NetBSD
51 #ifneq (,$(findstring $(SYS),$(NEEDS_PTHREAD)))
55 # SANE_POPEN - popen() can return a bidirectional FILE*
57 SANE_POPEN
:= Darwin FreeBSD NetBSD
58 ifneq (,$(findstring $(SYS
),$(SANE_POPEN
)))
63 DLL_COMMAND
:= -shared
69 DLL_COMMAND
:= -dynamiclib
70 FLAT_NAMESPACE
:= -flat_namespace
71 FIXDLL
:= install_name_tool _build
/binaries
/io
$(BINARY_SUFFIX
) -change _build
/dll
/libiovmall.dylib @executable_path
/libiovmall.dylib
79 ifneq (,$(findstring CYGW
,$(SYS
)))
84 ifneq (,$(findstring MINGW
,$(SYS
)))
89 ifneq (,$(findstring Windows
,$(SYS
)))
92 LINK
:= link
-link
-debug
96 LFLAGS
+= ws2_32.lib kernel32.lib shell32.lib
97 OPTIMIZE
:= -Zi
-MD
-DWIN32
-DNDEBUG
-DBUILDING_IOVMALL_DLL
-D_CRT_SECURE_NO_DEPRECATE
99 LINKDIRFLAG
:= -libpath
:
101 DLL_LIB_SUFFIX
:= .lib
102 BINARY_SUFFIX
:= .exe
105 ### FILES ####################################################################
107 sources
:= $(wildcard *.c
)
108 objects
:= $(addprefix _build
/objs
/,$(sources
:.c
=.o
))
110 ### RULES ####################################################################
113 mkdir
-p _build
/binaries
115 #$(MAKE) _build/binaries/io_static$(BINARY_SUFFIX)
116 #$(MAKE) _build/binaries/io$(BINARY_SUFFIX)
119 $(CC
) $(CFLAGS
) -c
$(CCOUTFLAG
)_build
/objs
/main.o source
/main.c
$(HEADERS
)
121 #_build/binaries/io_static$(BINARY_SUFFIX): _build/objs/main.o
122 $(LINK
) $(LINKOUTFLAG
)_build
/binaries
/io_static
$(BINARY_SUFFIX
) _build
/objs
/main.o ..
/_build
/lib
/libiovmall.a
$(LFLAGS
)
124 #_build/binaries/io: _build/objs/main.o
125 #$(CC) $(CFLAGS) $(FLAT_NAMESPACE) $(LFLAGS) -o _build/binaries/io$(BINARY_SUFFIX) _build/objs/main.o ../_build/dll/libiovmall.$(DLL_SUFFIX)
126 $(LINK
) $(FLAT_NAMESPACE
) $(LFLAGS
) $(LINKOUTFLAG
)_build
/binaries
/io
$(BINARY_SUFFIX
) _build
/objs
/main.o
$(LINKDIRFLAG
)..
/_build
/dll
$(LINKLIBFLAG
)iovmall
$(DLL_LIB_SUFFIX
)
134 .
/_build
/binaries
/io_static
$(BINARY_SUFFIX
) ..
/libs
/iovm
/tests
/run.io
137 .
/io_static
$(BINARY_SUFFIX
) _docgen
/DocsExtractor.io .
140 -rm -f _ioCode
/zzz_docs.io
143 .
/io_static
$(BINARY_SUFFIX
) _tests
/_speed
/speed.io
> _tests
/_speed
/SpeedResults
144 python _tests
/_speed
/speed.py
>> _tests
/_speed
/SpeedResults
145 ruby _tests
/_speed
/speed.ruby
>> _tests
/_speed
/SpeedResults
146 #lua _tests/_speed/speed.lua >> _tests/_speed/SpeedResults
147 .
/io_static
$(BINARY_SUFFIX
) _tests
/_speed
/speedResults.io
> _tests
/_speed
/SpeedResults.html