blob: 4610a3848330c3d3656a534121d9b28313a77b71 (
plain)
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
116
117
118
119
120
|
# --------------------------------------------------------------------------- #
# $Id: Makefile,v 1.25 2000/02/14 11:15:09 sewardj Exp $ #
# --------------------------------------------------------------------------- #
TOP = ..
include $(TOP)/mk/boilerplate.mk
SUBDIRS = lib
# --------------------------------------------------------------------- #
# interpreter and relevant .a/.so files #
# --------------------------------------------------------------------- #
ifeq "$(TARGETPLATFORM)" "i386-unknown-cygwin32"
DYN_EXT=.dll
LIB_DL=
else
DYN_EXT=.so
LIB_DL=-ldl
endif
ifeq "$(HaveLibReadline)$" "YES"
LIB_READLINE=-lreadline -ltermcap
else
LIB_READLINE=
endif
YACC = bison -y
%.c: %.y
-$(YACC) $<
mv y.tab.c $@
rm -f input.o
HS_SRCS =
Y_SRCS = parser.y
C_SRCS = link.c type.c static.c storage.c derive.c input.c compiler.c subst.c \
translate.c codegen.c lift.c free.c stgSubst.c output.c \
hugs.c dynamic.c stg.c sainteger.c object.c interface.c
SRC_CC_OPTS = -g -O -I$(GHC_INTERPRETER_DIR) -I$(GHC_INCLUDE_DIR) -I$(GHC_RUNTIME_DIR) -D__HUGS__ -DCOMPILING_RTS -Wall -Wstrict-prototypes -Wno-unused -DDEBUG -Winline
GHC_LIBS_NEEDED = $(GHC_RUNTIME_DIR)/libHSrts.a
all :: parser.c $(GHC_LIBS_NEEDED) nHandle$(DYN_EXT) hugs
### EXTREMELY hacky
hugs: $(C_OBJS) ../rts/Sanity.o ../rts/Assembler.o ../rts/Disassembler.o \
../rts/Evaluator.o ../rts/ForeignCall.o ../rts/GC.o ../rts/Printer.o \
../rts/StgCRun.o ../rts/PrimOps.o
$(CC) -o $@ $(CC_OPTS) $^ $(GHC_LIBS_NEEDED) \
-lbfd -liberty $(LIB_READLINE) $(LIB_DL) -lgmp -lm
foobar:
rm -f ../rts/libHSrts.a ../rts/libHSrts_u.a
rm -f ../rts/StgCRun.o ../rts/StgCRun.u_o
make all
nHandle$(DYN_EXT): nHandle.c
ifeq "$(TARGETPLATFORM)" "i386-unknown-cygwin32"
gcc -mno-cygwin -O -Wall -o nHandle.o -c nHandle.c
dllwrap -mno-cygwin --target=i386-mingw32 -o nHandle.dll \
-def nHandle.def nHandle.o
else
gcc -O -Wall -shared -fPIC -o nHandle.so nHandle.c
endif
$(GHC_RUNTIME_DIR)/libHSrts.a:
(cd $(GHC_RUNTIME_DIR) ; make clean ; make EXTRA_CC_OPTS=-I$(GHC_INTERPRETER_DIR))
cleanish:
/bin/rm *.o
rtsclean:
(cd $(GHC_RUNTIME_DIR) ; make clean)
binaries:
tar cvzf stghugs.tar.gz hugs$(exeext) nHandle$(DYN_EXT) lib/*lhs lib/Prelude.hs
snapshot:
/bin/rm -f snapshot.tar
tar cvf snapshot.tar Makefile *.[chy] \
../rts/Assembler.c ../rts/Evaluator.c ../rts/Disassembler.c \
../rts/ForeignCall.c ../rts/Printer.c ../rts/QueueTemplate.h \
../includes/options.h ../includes/Assembler.h nHandle.c \
../includes/Assembler.h ../rts/Bytecodes.h ../includes/ClosureMacros.h \
lib/*.hs runnofib runallnofib
# --------------------------------------------------------------------- #
# Testing #
# --------------------------------------------------------------------- #
check :: all
./test/runtests test/static/*.hs
./test/runtests test/typechecker/*.hs
./test/runtests test/runtime/*.hs
./test/runtests test/std/*.hs
./test/runtests test/exts/*.hs
checkrun: all
./test/runtests test/runtime/*.hs
./test/runtests test/std/*.hs
./test/runtests test/exts/*.hs
# --------------------------------------------------------------------- #
# Cleanery & misc #
# --------------------------------------------------------------------- #
CLEAN_FILES += hugs nHandle.dll
CLEAN_FILES += $(TOP)/ghc/rts/libHSrts.a $(TOP)/ghc/rts/*.o
CLEAN_FILES += parser.c
INSTALL_LIBEXECS = hugs
depend :: $(LOOPS) $(SRCS_UGNHS)
include $(TOP)/mk/target.mk
|