/
Makefile.in
115 lines (101 loc) · 3.29 KB
/
Makefile.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#
# Makefile for ECL core library
#
top_srcdir= @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
# Programs used by "make":
#
TRUE_CC = @CC@
CC = @CC@
CFLAGS = -c -DECL_API -I. -I@true_builddir@ -I$(srcdir) -I../ecl/gc @CPPFLAGS@ @CFLAGS@ @ECL_CFLAGS@ \
# -Wall -W -Wfloat-equal -Wundef -Wendif-labels -Wpointer-arith -Wcast-align \
# -Wwrite-strings -Wconversion -Wsign-compare -Wmissing-prototypes -Wredundant-decls \
# -Wunreachable-code -Winline
SHELL = /bin/sh
RM = @RM@
EXE = @EXEEXT@
DPP = ./dpp$(EXE)
RANLIB = @RANLIB@
# Data for installation
#
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
# Files
HDIR = ../ecl
HFILES = $(HDIR)/config.h $(HDIR)/ecl.h $(HDIR)/ecl-cmp.h\
$(HDIR)/object.h $(HDIR)/cs.h $(HDIR)/stacks.h\
$(HDIR)/external.h $(HDIR)/eval.h\
$(HDIR)/number.h $(HDIR)/page.h $(HDIR)/unify.h
OBJS = main.o symbol.o package.o list.o\
apply.o eval.o interpreter.o compiler.o disassembler.o \
instance.o gfun.o reference.o character.o\
file.o read.o print.o error.o string.o cfun.o\
typespec.o assignment.o \
predicate.o number.o\
num_pred.o num_comp.o num_arith.o num_sfun.o num_co.o\
num_log.o num_rand.o array.o sequence.o cmpaux.o\
macros.o backq.o stacks.o \
time.o unixint.o\
mapfun.o multival.o hash.o format.o pathname.o\
structure.o load.o unixfsys.o unixsys.o \
ffi.o @EXTRA_OBJS@
.SUFFIXES: .c .o .d
.PHONY: all
all: $(DPP) ../libeclmin.a ../cinit.o
.c.s: $(HFILES)
$(CC) -DECLDIR="\"@ecldir@\"" $(CFLAGS) -S -o $@ $<
.c.o: $(HFILES)
$(CC) -DECLDIR="\"@ecldir@\"" $(CFLAGS) -o $@ $<
.d.c: $(DPP)
if test -f ../CROSS-DPP ; then ../CROSS-DPP $< $@ ; else $(DPP) $< $@ ; fi
apply_x86.c: arch/apply_x86.d $(DPP) $(HFILES)
if test -f ../CROSS-DPP ; then ../CROSS-DPP $< $@ ; else $(DPP) $< $@ ; fi
ffi_x86.c: arch/ffi_x86.d $(DPP) $(HFILES)
if test -f ../CROSS-DPP ; then ../CROSS-DPP $< $@ ; else $(DPP) $< $@ ; fi
ffi_x86_64.c: arch/ffi_x86_64.d $(DPP) $(HFILES)
if test -f ../CROSS-DPP ; then ../CROSS-DPP $< $@ ; else $(DPP) $< $@ ; fi
../libeclmin.a: $(OBJS) all_symbols.o all_symbols2.o
$(RM) $@
ar cr $@ $(OBJS)
$(RANLIB) $@
clean:
$(RM) $(DPP) *.c *.h $(OBJS) all_symbols.o all_symbols2.o ../@LIBPREFIX@ecl@LIBPOSTFIX@.a cinit.o core a.out
# Build rules
$(DPP): $(srcdir)/dpp.c $(srcdir)/symbols_list2.h
if test -f ../CROSS-DPP; then touch dpp; else \
$(TRUE_CC) @CFLAGS@ @ECL_CFLAGS@ -I$(srcdir) -I@true_builddir@ -I./ $(DEFS) $(srcdir)/dpp.c -o $@ ; \
fi
$(srcdir)/symbols_list2.h: $(srcdir)/symbols_list.h Makefile
cat $(srcdir)/symbols_list.h | \
sed -e 's%{\([A-Z ]*.*".*"\),[^,]*,[ ]*NULL,.*}%{\1,NULL}%g' \
-e 's%{\([A-Z ]*.*".*"\),[^,]*,[ ]*\([^,]*\),.*}%{\1,"\2"}%g' \
-e 's%{NULL.*%{NULL,NULL}};%' > $@
#
# GCC might break this code
#
gbc.o: gbc.c $(HFILES)
$(CC) $(CFLAGS) -O0 gbc.c -o $@
ffi_x86.o: ffi_x86.c $(HFILES)
$(CC) $(CFLAGS) -O0 ffi_x86.c -o $@
#
# This reduces the overhead of jumping to other functions
#
apply.o: apply.c $(HFILES) $(HDIR)/cs.h
$(CC) $(CFLAGS) apply.c -o $@
#
# These files are interrelated
#
all_symbols.o: all_symbols.c
$(CC) $(CFLAGS) -I./ all_symbols.c -o $@
all_symbols2.o: all_symbols.c
$(CC) $(CFLAGS) -DECL_FINAL -I./ all_symbols.c -o $@
#
# This is in another directory
#
../cinit.o: cinit.c $(HFILES)
$(CC) $(CFLAGS) -I./ cinit.c -o $@