Blame | Last modification | View Log | RSS feed
CFLAGS+=-D LINUX -Wall
CFLAGS+= -DYY_MAIN=0 -fpic
CFLAGS+=-I../cmdlib -I../vertlib
CFLAGS+=-I../vertcl_src -I../versionlib
CFLAGS+=-I../include
CFLAGS+=-I..
# interesting linker commands -dll -shared -O2 -mno-cygwin
#LDFLAGS = /usr/lib/crt0.o -L/usr/lib -lregex -liberty -lfl
LDFLAGS = -lpcre -lfl -g -Wl,-L/mnt/card/vert03/lib
#rules alter to match funny RISCOS yacc
#.y.o:
# $(YACC) $(YFLAGS) $<
# mv y.tab.c $*.c
# mv y.tab.h $*.h
# $(CC) $(CFLAGS) $*.c -c -o $@
# rm $*_tab.c
.y.c:
$(YACC) $(YFLAGS) $<
mv $*.tab.c $*.c
mv $*.tab.h $*.h
.l.c:
$(LEX) $(LFLAGS) $<
mv lex.yy.c $*.c
#
# mv $*.o $@
#
SRCS:=$(wildcard *.c)
HDRS:=$(wildcard *.h)
ifneq ($(TARG),vertcl)
LEXS:=$(TARG)_lex.l
YACCS:=$(TARG)_yacc.y
endif
OBJS:=$(SRCS:.c=.o)
COMP_C:=$(LEXS:.l=.c)
COMP_C+=$(YACCS:.y=.c)
OBJS+=$(LEXS:.l=.o)
OBJS+=$(YACCS:.y=.o)
OBJS:=$(sort $(OBJS))
DEPS:=$(OBJS:.o=.d)
OBJS:=$(patsubst %,../obj/%,$(OBJS))
LIBS:= $(TARG)lib.a
SOLIBS:= -lcmd -lvert -lversion
ifneq ($(TARG),vertcl)
#../targets/$(TARG)_read:$(LIBS) $(OBJS)
#../targets/$(TARG)_read: $(OBJS)
../targets/$(TARG)_read: $(LIBS)
# $(CC) -o $@ $(LIBS) $(LDFLAGS)
$(CC) -o $@ $< -dy $(LDFLAGS) $(SOLIBS)
else
all:
@echo avoiding making $(TARG)_read
endif
$(OBJS):$(SRCS) $(HDRS)
$(CC) $(CFLAGS) $(patsubst ../obj/%.o,%.c,$@) -c -o $@
$(LEXS):$(TARG)_yacc.h
$(TARG)_yacc.h:$(TARG)_yacc.y
$(TARG)lib.a:$(OBJS)
ar rs $@ $(OBJS)
# ld -o $@ --shared $(OBJS)
clean:
rm -f $(OBJS) $(TARG)lib.a $(TARG)lib.so $(COMP_C) *.exe *.a *.bak *.org y.output
rm -f *_yacc.c *_lex.c $(DEPS) *.o
.SUFFIXES: .d .c .o
ifneq ($(MAKECMDGOALS),clean)
include $(DEPS)
endif
../obj/%.o:%.c
$(CC) $(CFLAGS) $< -c -o $@
%.d:%.c
$(CC) -c -E $(CFLAGS) -MMD $< > /dev/null
#...include correct path
sed -e "s,\(.*\.o\),../obj/\1,g" -e "s,:,:../make_targ ,"< $@ > /tmp/dep
mv /tmp/dep $@