1 | # |
---|
2 | # Copyright (C) 2008 Clozure Associates and contributors |
---|
3 | # This file is part of Clozure CL. |
---|
4 | # |
---|
5 | # Clozure CL is licensed under the terms of the Lisp Lesser GNU Public |
---|
6 | # License , known as the LLGPL and distributed with Clozure CL as the |
---|
7 | # file "LICENSE". The LLGPL consists of a preamble and the LGPL, |
---|
8 | # which is distributed with Clozure CL as the file "LGPL". Where these |
---|
9 | # conflict, the preamble takes precedence. |
---|
10 | # |
---|
11 | # Clozure CL is referenced in the preamble as the "LIBRARY." |
---|
12 | # |
---|
13 | # The LLGPL is also available online at |
---|
14 | # http://opensource.franz.com/preamble.html |
---|
15 | |
---|
16 | |
---|
17 | VPATH = ../ |
---|
18 | RM = /bin/rm |
---|
19 | AS = as |
---|
20 | M4 = m4 |
---|
21 | ASFLAGS = --32 |
---|
22 | M4FLAGS = -DLINUX -DX86 -DX8632 -DHAVE_TLS |
---|
23 | CDEFINES = -DLINUX -D_REENTRANT -DX86 -DX8632 -D_GNU_SOURCE -DHAVE_TLS -DUSE_FUTEX #-DGC_INTEGRITY_CHECKING -DDISABLE_EGC |
---|
24 | CDEBUG = -g |
---|
25 | COPT = -O2 |
---|
26 | # Once in a while, -Wformat says something useful. The odds are against that, |
---|
27 | # however. |
---|
28 | WFORMAT = -Wno-format |
---|
29 | PLATFORM_H = platform-darwinx8632.h |
---|
30 | |
---|
31 | # If the linker supports a "--hash-style=" option, use traditional |
---|
32 | # SysV hash tables. (If it doesn't support that option, assume |
---|
33 | # that traditional hash tables will be used by default.) |
---|
34 | ld_has_hash_style = $(shell $(LD) --help | grep "hash-style=") |
---|
35 | ifeq ($(ld_has_hash_style),) |
---|
36 | HASH_STYLE= |
---|
37 | else |
---|
38 | HASH_STYLE="-Wl,--hash-style=sysv" |
---|
39 | endif |
---|
40 | |
---|
41 | |
---|
42 | .s.o: |
---|
43 | $(M4) $(M4FLAGS) -I../ $< | $(AS) $(ASFLAGS) -o $@ |
---|
44 | .c.o: |
---|
45 | $(CC) -include ../$(PLATFORM_H) -c $< $(CDEFINES) $(CDEBUG) $(COPT) $(WFORMAT) -m32 -o $@ |
---|
46 | |
---|
47 | SPOBJ = pad.o x86-spjump32.o x86-spentry32.o x86-subprims32.o |
---|
48 | ASMOBJ = x86-asmutils32.o imports.o |
---|
49 | |
---|
50 | COBJ = pmcl-kernel.o gc-common.o x86-gc.o bits.o x86-exceptions.o \ |
---|
51 | image.o thread_manager.o lisp-debug.o memory.o unix-calls.o |
---|
52 | |
---|
53 | DEBUGOBJ = lispdcmd.o plprint.o plsym.o xlbt.o x86_print.o |
---|
54 | KERNELOBJ= $(COBJ) x86-asmutils32.o imports.o |
---|
55 | |
---|
56 | SPINC = lisp.s m4macros.m4 x86-constants.s x86-macros.s errors.s x86-uuo.s \ |
---|
57 | x86-constants32.s |
---|
58 | |
---|
59 | CHEADERS = area.h bits.h x86-constants.h lisp-errors.h gc.h lisp.h \ |
---|
60 | lisp-exceptions.h lisp_globals.h macros.h memprotect.h image.h \ |
---|
61 | Threads.h x86-constants32.h x86-exceptions.h lisptypes.h |
---|
62 | |
---|
63 | |
---|
64 | KSPOBJ = $(SPOBJ) |
---|
65 | all: ../../lx86cl |
---|
66 | |
---|
67 | |
---|
68 | OSLIBS = -ldl -lm -lpthread |
---|
69 | LINK_SCRIPT = # ./elf_x86_32.x |
---|
70 | USE_LINK_SCRIPT = # -T $(LINK_SCRIPT) |
---|
71 | |
---|
72 | ../../lx86cl: $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ) Makefile $(LINK_SCRIPT) |
---|
73 | $(CC) -m32 $(CDEBUG) -Wl,--export-dynamic $(HASH_STYLE) -o $@ $(USE_LINK_SCRIPT) $(KSPOBJ) $(KERNELOBJ) $(DEBUGOBJ) $(OSLIBS) |
---|
74 | |
---|
75 | |
---|
76 | $(SPOBJ): $(SPINC) |
---|
77 | $(ASMOBJ): $(SPINC) |
---|
78 | $(COBJ): $(CHEADERS) |
---|
79 | $(DEBUGOBJ): $(CHEADERS) lispdcmd.h |
---|
80 | |
---|
81 | |
---|
82 | cclean: |
---|
83 | $(RM) -f $(KERNELOBJ) $(DEBUGOBJ) ../../lx86cl |
---|
84 | |
---|
85 | clean: cclean |
---|
86 | $(RM) -f $(SPOBJ) |
---|
87 | |
---|
88 | strip: ../../lx86cl |
---|
89 | strip -g ../../lx86cl |
---|