source: trunk/ash/Makefile.libc.gmk@ 3721

Last change on this file since 3721 was 2463, checked in by bird, 20 years ago

OS/2 changes.

File size: 3.2 KB
Line 
1# $NetBSD: Makefile,v 1.80 2005/06/26 19:10:49 christos Exp $
2# @(#)Makefile 8.4 (Berkeley) 5/5/95
3SMALLPROG = 1
4
5OBJDIR ?= obj
6
7PROG=sh
8SHSRCS= alias.c cd.c echo.c error.c eval.c exec.c expand.c \
9 histedit.c input.c jobs.c mail.c main.c memalloc.c miscbltin.c \
10 mystring.c options.c parser.c redir.c show.c trap.c output.c var.c \
11 test.c kill.c syntax.c yywrap.c
12GENSRCS=arith.c arith_lex.c builtins.c init.c nodes.c
13GENHDRS=$(OBJDIR)/arith.h $(OBJDIR)/builtins.h $(OBJDIR)/nodes.h $(OBJDIR)/token.h
14SRCS= ${SHSRCS} ${GENSRCS}
15
16DPSRCS+=${GENHDRS}
17
18CC = gcc
19CFLAGS = -g -Zomf -Dlint -DSHELL -DEXEC_HASH_BANG_SCRIPT -DPC_OS2_LIBPATHS -DPC_PATH_SEP -DPC_DRIVE_LETTERS -DPC_EXE_EXTS -I$(OBJDIR) -I. # (the last is because of error.h)
20# for debug:
21LD = gcc
22LDFLAGS = -Zomf -Zmap -Zstack 384 -Zfork
23#LDFLAGS += -Wl,-static -static
24YACC = yacc
25LEX = flex
26
27ifneq ($(BUILD_TYPE),release)
28CFLAGS += -g -DDEBUG=2 -O0
29LDFLAGS += -g
30else
31CFLAGS += -O2 -march=i586 -mcpu=i586 -fno-strength-reduce -fomit-frame-pointer
32endif
33
34ifdef SMALLPROG
35CFLAGS += -DSMALL
36else
37CFLAGS += -Ilibedit
38SRCS += printf.c
39endif
40
41LFLAGS= -8 # 8-bit lex scanner for arithmetic
42YFLAGS= -d
43ifdef CRUNCHEDPROG
44LFLAGS+=-L
45YFLAGS+=-l
46endif
47
48
49all: ash-dyn.exe ash-static.exe
50
51CLEANFILES+= ${GENSRCS} ${GENHDRS} y.tab.h
52CLEANFILES+= trace
53
54$(OBJDIR)/token.h: mktokens | $(OBJDIR)
55 bash $^
56 mv -f token.h $@.tmp
57 mv -f $@.tmp $@
58
59$(OBJDIR)/builtins.h: $(OBJDIR)/builtins.c | $(OBJDIR)
60
61$(OBJDIR)/builtins.c: mkbuiltins shell.h builtins.def | $(OBJDIR)
62 bash $^ $(OBJDIR)
63 [ -f $(OBJDIR)/builtins.h ]
64
65$(OBJDIR)/init.c: mkinit.sh $(foreach src,$(SHSRCS),$(firstword $(wildcard ./$(src) ./funcs/$(src) ./bltin/$(src)) $(src))) | $(OBJDIR)
66 bash $^
67 mv -f init.c $@.tmp
68 mv -f $@.tmp $@
69
70$(OBJDIR)/nodes.h: $(OBJDIR)/nodes.c | $(OBJDIR)
71
72$(OBJDIR)/nodes.c: mknodes.sh nodetypes nodes.c.pat | $(OBJDIR)
73 bash $^ $(OBJDIR)
74 [ -f $(OBJDIR)/nodes.h ]
75
76$(OBJDIR)/arith.h $(OBJDIR)/arith.c: arith.y | $(OBJDIR)
77 $(YACC) $(YFLAGS) $^
78 mv -f y.tab.c $(OBJDIR)/arith.c
79 mv -f y.tab.h $(OBJDIR)/arith.h
80
81$(OBJDIR)/arith_lex.c: arith_lex.l | $(OBJDIR)
82 $(LEX) $(LFLAGS) -o$@ $^
83
84#######
85
86OBJS :=
87
88define def_compile
89
90$(eval s := $(firstword $(wildcard ./$(src) ./funcs/$(src) ./bltin/$(src)) $(src)))
91$(eval o := $(OBJDIR)/$(patsubst %.c,%.o,$(src)))
92$(eval OBJS += $(o))
93
94$(o): $(s) | $(GENHDRS) $(OBJDIR)
95 $$(CC) -c $$(CFLAGS) -o $$@ $(s)
96
97endef
98
99$(foreach src,$(SHSRCS),$(eval $(def_compile)))
100
101define def_compile_gen
102
103$(eval o := $(patsubst %.c,%.o,$(src)))
104$(eval OBJS += $(o))
105
106$(o): $(src) | $(OBJDIR)
107 $$(CC) -c $$(CFLAGS) -o $$@ $(src)
108
109endef
110
111$(foreach src,$(addprefix $(OBJDIR)/,$(GENSRCS)),$(eval $(def_compile_gen)))
112
113$(OBJDIR):
114 mkdir -p $@
115
116#######
117
118ash-dyn.exe: $(OBJS)
119 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS)
120# lxlite /X /F /APP:4096 /S /T $@
121
122ash-static.exe: $(OBJS)
123 $(CC) $(CFLAGS) -Wl,-static -static $(LDFLAGS) -lc_omf386 -o $@ $(OBJS)
124# lxlite /X /F /APP:4096 /S /T $@
125
126#%.exe: %.c
127# $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<
128
129#echo.o: bltin/echo.c
130# $(CC) -c -o $@ $(CFLAGS) $<
131#test.o: bltin/test.c
132# $(CC) -c -o $@ $(CFLAGS) $<
133
134clean:
135 rm -f core *.o $(CLEAN_FILES)
136
137
Note: See TracBrowser for help on using the repository browser.