forked from JuliaLang/julia
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
90 lines (70 loc) · 2.17 KB
/
Makefile
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
JULIAHOME = $(abspath ../..)
include $(JULIAHOME)/Make.inc
override CFLAGS += $(JCFLAGS)
override CXXFLAGS += $(JCXXFLAGS)
override CPPFLAGS += $(JCPPFLAGS)
NAME = flisp
EXENAME = $(NAME)
LIBTARGET = lib$(NAME)
SRCS = flisp.c builtins.c string.c equalhash.c table.c iostream.c \
julia_extensions.c
ifeq ($(USEMSVC), 1)
SRCS += basename.c dirname.c
endif
OBJS = $(SRCS:%.c=%.o)
DOBJS = $(SRCS:%.c=%.dbg.obj)
LLTDIR = ../support
LLT = $(LLTDIR)/libsupport.a $(LIBUV) $(LIBMOJIBAKE)
FLAGS = -I$(LLTDIR) $(CFLAGS) $(HFILEDIRS:%=-I%) \
-I$(LIBUV_INC) -I$(build_includedir) $(LIBDIRS:%=-L%) \
-DLIBRARY_EXPORTS -DMOJIBAKE_EXPORTS
ifneq ($(USEMSVC), 1)
FLAGS += -Wall -Wno-strict-aliasing -DUSE_COMPUTED_GOTO -fvisibility=hidden
endif
LIBFILES = $(LLT)
LIBS = $(LIBFILES)
ifneq ($(OS),WINNT)
LIBS += -lpthread
endif
DEBUGFLAGS += $(FLAGS)
SHIPFLAGS += $(FLAGS)
default: release
release: $(EXENAME)
debug: $(EXENAME)-debug
HEADERS = $(wildcard *.h) $(LIBUV_INC)/uv.h
%.o: %.c $(HEADERS)
@$(call PRINT_CC, $(CC) $(CPPFLAGS) $(SHIPFLAGS) -DNDEBUG -c $< -o $@)
%.dbg.obj: %.c $(HEADERS)
@$(call PRINT_CC, $(CC) $(CPPFLAGS) $(DEBUGFLAGS) -c $< -o $@)
flisp.o: flisp.c cvalues.c types.c flisp.h print.c read.c equal.c
flisp.dbg.obj: flisp.c cvalues.c types.c flisp.h print.c read.c equal.c
flmain.o: flmain.c flisp.h
flmain.dbg.obj: flmain.c flisp.h
$(LLT): $(LLTDIR)/*.h $(LLTDIR)/*.c
cd $(LLTDIR) && $(MAKE)
$(LIBTARGET)-debug.a: $(DOBJS)
rm -rf $@
@$(call PRINT_LINK, $(AR) -rcs $@ $(DOBJS))
ln -sf $@ $(LIBTARGET).a
$(LIBTARGET).a: $(OBJS)
rm -rf $@
@$(call PRINT_LINK, $(AR) -rcs $@ $(OBJS))
ifneq ($(USEMSVC), 1)
CCLD = $(CC)
else
CCLD = $(LD)
endif
$(EXENAME)-debug: $(DOBJS) $(LIBFILES) $(LIBTARGET)-debug.a flmain.dbg.obj
@$(call PRINT_LINK, $(CCLD) $(DEBUGFLAGS) $(DOBJS) flmain.dbg.obj -o $(EXENAME)-debug $(LIBTARGET).a $(LIBS) $(OSLIBS))
$(EXENAME): $(OBJS) $(LIBFILES) $(LIBTARGET).a flmain.o
@$(call PRINT_LINK, $(CCLD) $(SHIPFLAGS) $(OBJS) flmain.o -o $(EXENAME) $(LIBTARGET).a $(LIBS) $(OSLIBS))
test:
ifneq ($(USEMSVC), 1)
$(call spawn,./$(EXENAME)) unittest.lsp
endif
clean:
rm -f *.o
rm -f *.dbg.obj
rm -f *.a
rm -f $(EXENAME)
rm -f $(EXENAME)-debug