93 lines
2.0 KiB
Makefile
93 lines
2.0 KiB
Makefile
all: erics_tools
|
|
VERSION=1
|
|
|
|
|
|
ifeq ($(CC),)
|
|
CC=gcc
|
|
endif
|
|
|
|
ifeq ($(LD),)
|
|
LD=ld
|
|
endif
|
|
|
|
ifeq ($(AR),)
|
|
AR=ar
|
|
endif
|
|
|
|
ifeq ($(RANLIB),)
|
|
RANLIB=ranlib
|
|
endif
|
|
|
|
|
|
CFLAGS:=$(CFLAGS) -Os
|
|
WARNING_FLAGS=-Wall -Wstrict-prototypes -pedantic
|
|
MINIMAL_WARNING_FLAGS=-Wall -Wstrict-prototypes
|
|
|
|
OS=$(shell uname)
|
|
ifeq ($(OS),Darwin)
|
|
LINK=$(LD)
|
|
SHLIB_EXT=dylib
|
|
SHLIB_FLAGS=-dylib
|
|
SHLIB_FILE=libericstools.$(SHLIB_EXT).$(VERSION)
|
|
CFLAGS:=$(CFLAGS) -arch i386
|
|
else
|
|
LINK=$(CC)
|
|
SHLIB_EXT=so
|
|
SHLIB_FILE=libericstools.$(SHLIB_EXT).$(VERSION)
|
|
SHLIB_FLAGS=-shared -Wl,-soname,$(SHLIB_FILE)
|
|
endif
|
|
|
|
|
|
|
|
|
|
test_list_and_queue: test_list_and_queue.c libericstools.a
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
|
|
test_list_and_queue.o: test_list_and_queue.c
|
|
$(CC) $(CFLAGS) $(MINIMAL_WARNING_FLAGS) -o $@ -c $^
|
|
|
|
test_string: test_string.o libericstools.a
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
|
|
test_string.o: test_string.c
|
|
$(CC) $(CFLAGS) $(MINIMAL_WARNING_FLAGS) -c $^ -o $@
|
|
|
|
|
|
test_map: test_map.o libericstools.a
|
|
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
|
|
test_map.o: test_map.c
|
|
$(CC) $(CFLAGS) $(MINIMAL_WARNING_FLAGS) -c $^ -o $@
|
|
|
|
|
|
|
|
|
|
all: erics_tools
|
|
|
|
erics_tools: libericstools.$(SHLIB_EXT) libericstools.a
|
|
|
|
|
|
libericstools.a: list_static.o priority_queue_static.o tree_map_static.o string_util_static.o file_util_static.o safe_malloc_static.o
|
|
if [ -e $@ ] ; then rm $@ ; fi
|
|
$(AR) rc $@ $^
|
|
$(RANLIB) $@
|
|
|
|
|
|
libericstools.$(SHLIB_EXT) : list_dyn.o priority_queue_dyn.o tree_map_dyn.o string_util_dyn.o file_util_dyn.o safe_malloc_dyn.o
|
|
if [ -e libericstools.$(SHLIB_EXT) ] ; then rm libericstools.$(SHLIB_EXT)* ; fi
|
|
$(LINK) $(LDFLAGS) $(SHLIB_FLAGS) -o $(SHLIB_FILE) $^ -lc
|
|
ln -s $(SHLIB_FILE) libericstools.$(SHLIB_EXT)
|
|
|
|
|
|
%_dyn.o: %.c
|
|
$(CC) $(CFLAGS) -fPIC $(WARNING_FLAGS) -o $@ -c $^
|
|
|
|
%_static.o: %.c
|
|
$(CC) $(CFLAGS) $(WARNING_FLAGS) -o $@ -c $^
|
|
|
|
|
|
|
|
clean:
|
|
rm -rf *.a *.o .*sw* *~ test_map test_string test_list_and_queue
|
|
if [ "$(SHLIB_EXT)" != "" ] ; then rm -rf *.$(SHLIB_EXT)* ; fi
|
|
install:
|
|
cp *.h /usr/include
|
|
cp *.$(SHLIB_EXT)* /usr/lib
|