]> gitweb.factorcode.org Git - factor.git/blob - Makefile
Makefile fix
[factor.git] / Makefile
1 CC = gcc
2
3 BINARY = f
4 IMAGE = factor.image
5 BUNDLE = Factor.app
6 VERSION = 0.84
7 DISK_IMAGE_DIR = Factor-$(VERSION)
8 DISK_IMAGE = Factor-$(VERSION).dmg
9
10 ifdef DEBUG
11         CFLAGS = -g
12         STRIP = touch
13 else
14         CFLAGS = -Wall -O3 -ffast-math -fomit-frame-pointer $(SITE_CFLAGS)
15         STRIP = strip
16 endif
17
18 ifdef CONFIG
19         include $(CONFIG)
20 endif
21
22 OBJS = $(PLAF_OBJS) \
23         vm/alien.o \
24         vm/bignum.o \
25         vm/compiler.o \
26         vm/debug.o \
27         vm/factor.o \
28         vm/ffi_test.o \
29         vm/image.o \
30         vm/io.o \
31         vm/math.o \
32         vm/data_gc.o \
33         vm/code_gc.o \
34         vm/primitives.o \
35         vm/run.o \
36         vm/stack.o \
37         vm/types.o
38
39 default:
40         @echo "Run 'make' with one of the following parameters:"
41         @echo ""
42         @echo "freebsd"
43         @echo "linux-x86"
44         @echo "linux-amd64"
45         @echo "linux-ppc"
46         @echo "macosx-x86"
47         @echo "macosx-ppc"
48         @echo "solaris"
49         @echo "windows"
50         @echo ""
51         @echo "On Unix, pass NO_UI=1 if you don't want to link with the"
52         @echo "X11 and OpenGL libraries."
53         @echo ""
54         @echo "On Mac OS X, pass X11=1 if you want to link with the"
55         @echo "X11 library instead of Cocoa. You will also need to bootstrap"
56         @echo "Factor with the -no-cocoa -x11 switches."
57         @echo
58         @echo "Also, you might want to set the SITE_CFLAGS environment"
59         @echo "variable to enable some CPU-specific optimizations; this"
60         @echo "can make a huge difference. Eg:"
61         @echo ""
62         @echo "export SITE_CFLAGS=\"-march=pentium4 -ffast-math\""
63
64 freebsd:
65         $(MAKE) $(BINARY) CONFIG=vm/Config.freebsd
66
67 macosx-freetype:
68         ln -sf libfreetype.6.dylib \
69                 Factor.app/Contents/Frameworks/libfreetype.dylib
70
71 macosx-ppc: macosx-freetype
72         $(MAKE) $(BINARY) CONFIG=vm/Config.macosx.ppc
73
74 macosx-x86: macosx-freetype
75         $(MAKE) $(BINARY) CONFIG=vm/Config.macosx
76
77 linux-x86 linux-amd64:
78         $(MAKE) $(BINARY) CONFIG=vm/Config.linux
79         $(STRIP) $(BINARY)
80
81 linux-ppc:
82         $(MAKE) $(BINARY) CONFIG=vm/Config.linux.ppc
83         $(STRIP) $(BINARY)
84
85 solaris solaris-x86 solaris-amd64:
86         $(MAKE) $(BINARY) CONFIG=vm/Config.solaris
87         $(STRIP) $(BINARY)
88
89 windows:
90         $(MAKE) $(BINARY) CONFIG=vm/Config.windows
91
92 macosx.app:
93         cp $(BINARY) $(BUNDLE)/Contents/MacOS/Factor
94
95         install_name_tool \
96                 -id @executable_path/../Frameworks/libfreetype.6.dylib \
97                 Factor.app/Contents/Frameworks/libfreetype.6.dylib
98         install_name_tool \
99                 -change /usr/X11R6/lib/libfreetype.6.dylib \
100                 @executable_path/../Frameworks/libfreetype.6.dylib \
101                 Factor.app/Contents/MacOS/Factor
102
103 macosx.dmg:
104         rm -f $(DISK_IMAGE)
105         rm -rf $(DISK_IMAGE_DIR)
106         mkdir $(DISK_IMAGE_DIR)
107         mkdir -p $(DISK_IMAGE_DIR)/Factor/
108         cp -R $(BUNDLE) $(DISK_IMAGE_DIR)/Factor/$(BUNDLE)
109         chmod +x cp_dir
110         cp factor.image license.txt README.txt TODO.FACTOR.txt
111                 $(DISK_IMAGE_DIR)/Factor/
112         find doc library contrib examples fonts \( -name '*.factor' \
113                 -o -name '*.facts' \
114                 -o -name '*.txt' \
115                 -o -name '*.html' \
116                 -o -name '*.ttf' \
117                 -o -name '*.el' \
118                 -o -name '*.vim' \
119                 -o -name '*.fgen' \
120                 -o -name '*.tex' \
121                 -o -name '*.js' \) \
122                 -exec ./cp_dir {} $(DISK_IMAGE_DIR)/Factor/{} \;
123         hdiutil create -srcfolder "$(DISK_IMAGE_DIR)" -fs HFS+ \
124                 -volname "$(DISK_IMAGE_DIR)" "$(DISK_IMAGE)"
125
126 f: $(OBJS)
127         $(CC) $(LIBS) $(CFLAGS) -o $@$(PLAF_SUFFIX) $(OBJS)
128
129 clean:
130         rm -f vm/*.o
131
132 clean.app:
133         rm -rf $(BUNDLE)/Contents/Resources/
134         rm -f $(BUNDLE)/Contents/MacOS/Factor
135
136 .c.o:
137         $(CC) -c $(CFLAGS) -o $@ $<
138
139 .S.o:
140         $(CC) -c $(CFLAGS) -o $@ $<
141
142 .m.o:
143         $(CC) -c $(CFLAGS) -o $@ $<