# Symlink
# Comment:     some configuration options   default is SunOS4.1.x (BSD), GNU Flex
PROG=linker

CC=cc
#CC=gcc 

# Uncomment for Solaris 2.x, etc.
FLAGS=-DSVR4 -g -L/usr/local/gnu/lib
# -g/-O # -DNO_LINK_RESOLV  # do not resolve symbolic links automatically
#FLAGS=-g -Wall

# Uncomment for std lex
#LEX=lex
#LEXLIB=-ll
LEX=flex
LEXLIB=-lfl

LEXTARGET=$(PROG).l
YACC=yacc
YFLAGS=-d -t -v 
YACCTARGET=$(PROG).y

SOURCE=linker.l linker.y main.c make_links.c str_func.h str_func.c \
link_types.c linker.h make_links.h lex_malloc.c 
OBJ=y.tab.o lex.yy.o main.o str_func.o make_links.o link_types.o lex_malloc.o 

LIBS= $(LEXLIB) -ly

$(PROG) : $(OBJ) Makefile
	$(CC) $(FLAGS) -o $(PROG) $(OBJ) $(LIBS)

main.o : main.c Makefile make_links.h
	$(CC) $(FLAGS) -c main.c

make_links.o : make_links.c Makefile
	$(CC) $(FLAGS) -c make_links.c

str_func.o : str_func.c Makefile str_func.h
	$(CC) $(FLAGS) -c str_func.c

link_types.o : link_types.c Makefile
	$(CC) $(FLAGS) -c link_types.c

lex.yy.o : lex.yy.c Makefile
	$(CC) -c $(FLAGS) lex.yy.c

lex.yy.c : $(LEXTARGET) Makefile
	$(LEX) $(LEXTARGET)

y.tab.o : y.tab.c Makefile 
	$(CC) -c y.tab.c

y.tab.c : $(YACCTARGET) Makefile linker.l linker.h make_links.h
	$(YACC) $(YFLAGS) $(YACCTARGET)

lex_malloc.o : lex_malloc.c Makefile
	$(CC) -c $(FLAGS) lex_malloc.c

clean :
	rm *.o y.tab.c lex.yy.c $(PROG) y.tab.h y.output 

dist-clean :
	rm *.o y.tab.c lex.yy.c $(PROG) y.tab.h y.output linker.h linker.l main.c linker.y

