]> gitweb.factorcode.org Git - factor.git/blob - Makefile
Initial import
[factor.git] / Makefile
1 CC = gcc
2
3 EXECUTABLE = factor
4 VERSION = 0.91
5
6 IMAGE = factor.image
7 BUNDLE = Factor.app
8 LIBPATH = -L/usr/X11R6/lib
9 CFLAGS = -Wall
10
11 ifdef DEBUG
12         CFLAGS += -g
13 else
14         CFLAGS += -O3 -fomit-frame-pointer $(SITE_CFLAGS)
15 endif
16
17 ifdef CONFIG
18         include $(CONFIG)
19 endif
20
21 ENGINE = $(DLL_PREFIX)factor$(DLL_SUFFIX)$(DLL_EXTENSION)
22
23 DLL_OBJS = $(PLAF_DLL_OBJS) \
24         vm/alien.o \
25         vm/bignum.o \
26         vm/compiler.o \
27         vm/debug.o \
28         vm/factor.o \
29         vm/ffi_test.o \
30         vm/image.o \
31         vm/io.o \
32         vm/math.o \
33         vm/data_gc.o \
34         vm/code_gc.o \
35         vm/primitives.o \
36         vm/run.o \
37         vm/stack.o \
38         vm/types.o \
39         vm/jit.o \
40         vm/utilities.o
41
42 EXE_OBJS = $(PLAF_EXE_OBJS)
43
44 default:
45         @echo "Run 'make' with one of the following parameters:"
46         @echo ""
47         @echo "freebsd-x86"
48         @echo "freebsd-amd64"
49         @echo "linux-x86"
50         @echo "linux-amd64"
51         @echo "linux-ppc"
52         @echo "linux-arm"
53         @echo "openbsd-x86"
54         @echo "openbsd-amd64"
55         @echo "macosx-x86"
56         @echo "macosx-ppc"
57         @echo "solaris-x86"
58         @echo "solaris-amd64"
59         @echo "windows-ce-arm"
60         @echo "windows-ce-x86"
61         @echo "windows-nt-x86"
62         @echo ""
63         @echo "Additional modifiers:"
64         @echo ""
65         @echo "DEBUG=1  compile VM with debugging information"
66         @echo "SITE_CFLAGS=...  additional optimization flags"
67         @echo "NO_UI=1  don't link with X11 libraries (ignored on Mac OS X)"
68         @echo "X11=1  force link with X11 libraries instead of Cocoa (only on Mac OS X)"
69
70 openbsd-x86:
71         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.openbsd.x86
72
73 openbsd-amd64:
74         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.openbsd.amd64
75
76 freebsd-x86:
77         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.freebsd.x86
78
79 freebsd-amd64:
80         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.freebsd.amd64
81
82 macosx-freetype:
83         ln -sf libfreetype.6.dylib \
84                 Factor.app/Contents/Frameworks/libfreetype.dylib
85
86 macosx-ppc: macosx-freetype
87         $(MAKE) $(EXECUTABLE) macosx.app CONFIG=vm/Config.macosx.ppc
88
89 macosx-x86: macosx-freetype
90         $(MAKE) $(EXECUTABLE) macosx.app CONFIG=vm/Config.macosx.x86
91
92 linux-x86:
93         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.x86
94
95 linux-amd64:
96         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.amd64
97
98 linux-ppc:
99         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.ppc
100
101 linux-arm:
102         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.linux.arm
103
104 solaris-x86:
105         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.solaris.x86
106
107 solaris-amd64:
108         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.solaris.amd64
109
110 windows-nt-x86:
111         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.nt.x86
112
113 windows-ce-arm:
114         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.ce.arm
115
116 windows-ce-x86:
117         $(MAKE) $(EXECUTABLE) CONFIG=vm/Config.windows.ce.x86
118
119 macosx.app: factor
120         cp $(EXECUTABLE) $(BUNDLE)/Contents/MacOS/factor
121         cp $(ENGINE) $(BUNDLE)/Contents/Frameworks
122
123         install_name_tool \
124                 -id @executable_path/../Frameworks/libfreetype.6.dylib \
125                 Factor.app/Contents/Frameworks/libfreetype.6.dylib
126         install_name_tool \
127                 -change libfactor.dylib \
128                 @executable_path/../Frameworks/libfactor.dylib \
129                 Factor.app/Contents/MacOS/factor
130
131 factor: $(DLL_OBJS) $(EXE_OBJS)
132         $(LINKER) $(ENGINE) $(DLL_OBJS)
133         $(CC) $(LIBS) $(LIBPATH) -L. $(LINK_WITH_ENGINE) \
134                 $(CFLAGS) -o $@$(EXE_SUFFIX)$(EXE_EXTENSION) $(EXE_OBJS)
135
136 pull:
137         darcs pull http://factorcode.org/repos/
138
139 clean:
140         rm -f vm/*.o
141
142 vm/resources.o:
143         windres vm/factor.rs vm/resources.o
144
145 .c.o:
146         $(CC) -c $(CFLAGS) -o $@ $<
147
148 .S.o:
149         $(CC) -c $(CFLAGS) -o $@ $<
150
151 .m.o:
152         $(CC) -c $(CFLAGS) -o $@ $<
153         
154 .PHONY: factor