Newer
Older
#
# Makefile for MKCL core library
#
# Copyright (c) 2010-2012, Jean-Claude Beaudoin.
# Copyright by a number of previous anonymous authors
# presumed to be the same as for the rest of MKCL.
#
# MKCL is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3 of the License, or (at your option) any later version.
#
# See file '../../Copyright' for full details.
#
#
top_srcdir= /usr/home/Jean-Claude/mkcl-1.1.8/src
srcdir = /usr/home/Jean-Claude/mkcl-1.1.8/src/c
VPATH = /usr/home/Jean-Claude/mkcl-1.1.8/src/c
# Programs used by "make":
#
TRUE_CC = gcc
CC = gcc
ifeq (mingw32,mingw32)
CFLAGS = -I../ -DMKCL_API -fno-strict-aliasing -g -O2 -mthreads -D_MT -DWinXP
CFLAGS = -I../ -fno-strict-aliasing -g -O2 -mthreads -D_MT -DWinXP
endif
SHELL = /bin/sh
RM = rm -f
EXE = .exe
DPP = ./dpp$(EXE)
RANLIB = ranlib
# Data for installation
#
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
prefix=C:/GNU/MinGW
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
# Files
HDIR = ../mkcl
HFILES = $(HDIR)/config.h $(HDIR)/mkcl.h $(HDIR)/mkcl-cmp.h\
$(HDIR)/object.h $(HDIR)/stacks.h\
$(HDIR)/external.h $(HDIR)/eval.h\
$(HDIR)/number.h $(HDIR)/mkcl-inl.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 \
unicode.o \
ffi.o threads.o alloc_2.o ffi_x86.o big.o
DCFILES = $(OBJS:%.o=%.c)
DHFILES = $(OBJS:%.o=%.h)
.SUFFIXES: .c .o .d
.PHONY: all
all: ../mkclmin.a ../mkcltop.a all_symbols.o all_symbols2.o cinit.o
.c.s:
$(CC) $(CFLAGS) -S -o $@ -c $<
.c.o:
$(CC) $(CFLAGS) -o $@ -c $<
.d.c: $(DPP)
$(DPP) $< $@
$(DCFILES) all_symbols.c cinit.c: $(DPP)
apply_x86.c: arch/apply_x86.d $(DPP)
$(DPP) $< $@
ffi_x86.c: arch/ffi_x86.d $(DPP)
$(DPP) $< $@
ffi_x86_64.c: arch/ffi_x86_64.d $(DPP)
$(DPP) $< $@
../mkclmin.a: $(OBJS)
$(RM) $@
$(AR) cr $@ $(OBJS)
$(RANLIB) $@
../mkcltop.a: main.o all_symbols2.o
$(RM) $@
$(AR) cr $@ main.o all_symbols2.o
$(RANLIB) $@
clean:
$(RM) $(DPP) $(DCFILES) $(DHFILES) $(OBJS) all_symbols.c all_symbols.o all_symbols2.o main2.o cinit.c cinit.o core core.* a.out
$(RM) GNUmakefile makefile.depend
distclean: clean
$(RM) Makefile
realclean: distclean
$(RM) *~ arch/*~
# Build rules
$(DPP): dpp.c symbols_list2.h
$(TRUE_CC) -O2 -I../ dpp.c -o $@
symbols_list2.h: symbols_list.h
cpp -DDPP -DMKCL_FINAL symbols_list.h | \
sed -e 's%{{\([A-Z ]*.*".*"\),[^,]*,[ ]*NULL,.*}}%{\1,NULL,-1}%g' \
-e 's%{{\([A-Z ]*.*".*"\),[^,]*,[ ]*\([^,]*\),[ ]*\([^,]*\),.*}}%{\1,"\2",\3}%g' \
-e 's%{{NULL.*%{NULL,NULL,-1}};%' > $@
$(OBJS): $(DPP)
#
# GCC might break this code
#
ffi_x86.o: ffi_x86.c
$(CC) $(CFLAGS) -O0 -c ffi_x86.c -o $@
#
# These files are interrelated
#
all_symbols.o: all_symbols.c
$(CC) $(CFLAGS) -c all_symbols.c -o $@
all_symbols2.o: all_symbols.o
$(CC) $(CFLAGS) -DMKCL_FINAL -c all_symbols.c -o $@
main2.o: main.o
$(CC) $(CFLAGS) -DSTATIC -c main.c -o $@
cinit.o: cinit.c
$(CC) $(CFLAGS) -c cinit.c -o $@
Makefile: Makefile.in ../config.status
cd ..; ./config.status
#
#
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
depend:
$(MAKE) GNUmakefile
makefile.depend: $(DCFILES) cinit.c all_symbols.c ../mkcl/*.h
$(RM) makefile.depend
for i in $^; do \
case $$i in \
*.h) ;; \
*) \
$(CC) -MM -MF makefile.depend.tmp $(CFLAGS) $$i; \
cat makefile.depend.tmp >> makefile.depend;; \
esac; \
done
$(RM) makefile.depend.tmp
GNUmakefile: Makefile makefile.depend
cat Makefile makefile.depend > GNUmakefile
#
# End of Makefile.
#
#================================================
#