        #########################################################
        #		LIBVG MAKEFILE				#
        #########################################################

CC=		gcc
CFLAGS=		-O2 -Wall -Iinclude -fPIC

                        ###################
                        ##  SOURCE FILES ##
                        ###################

SRC_BASE=		pal.c proc.c objdc.c obj.c

SRC_ELF_HEADERS=	hdr.c phdr.c 

SRC_ELF_SECTIONS=	interp.c dynamic.c dynsym.c dynstr.c reldyn.c	\
			relplt.c hash.c got.c plt.c init.c fini.c bss.c	\
			note.c

SRC_DUMP=		dump.c
	
SRC_REPLACE=		replace.c

SRC_SYMBOLS=		sym.c redir.c

SRC_INJECT=		inject.c #resin.c

SRC_MISC=		format.c create.c digest.c signal.c stack.c	\
			debug.c error.c fdtbl.c

SRC=		$(SRC_BASE) $(SRC_ELF_HEADERS) $(SRC_ELF_SECTIONS)	\
		$(SRC_DUMP) $(SRC_REPLACE) $(SRC_SYMBOLS) $(SRC_INJECT)	\
		$(SRC_MISC)


OBJ=$(SRC:.c=.o)

help:
	@echo "try:"
	@echo ""
	@echo "  make openbsd"
	@echo "  make freebsd"
	@echo "  make netbsd"
	@echo "  make linux"
	@echo ""

all:

openbsd: $(OBJ)
	$(CC) -shared $(OBJ) $(LIBS) -o libvg.so
	ar rc libvg.a $(OBJ)
	strip libvg.so
	ranlib libvg.a

freebsd: $(OBJ)
	$(CC) -shared $(OBJ) $(LIBS) -o libvg.so
	ar rc libvg.a $(OBJ)
	strip libvg.so
	ranlib libvg.a

netbsd: $(OBJ)
	$(CC) -shared $(OBJ) $(LIBS) -o libvg.so
	ar rc libvg.a $(OBJ)
	strip libvg.so
	ranlib libvg.a

linux: $(OBJ)
	$(CC) -shared $(OBJ) $(LIBS) -ldl -o libvg.so
	ar rc libvg.a $(OBJ)
	strip libvg.so
	ranlib libvg.a

solaris: $(OBJ)
	$(CC) -shared $(OBJ) $(LIBS) -ldl -o libvg.so
	ar rc libvg.a $(OBJ)
	strip libvg.so
	ranlib libvg.a

install: all
	cp include/* /usr/include/
	cp libvg.so /usr/local/lib/
	cp libvg.a /usr/local/lib/

clean:
	rm *.o
	rm libvg.so
	rm libvg.a
		
