#
# Makefile
#
# Author: WeeSan Lee <weesan@cs.ucr.edu>
#

CC      = gcc
CFLAGS  =
OBJS    = bar.o foo.o

# Has to specific -fPIC for the object codes making shared library
.c.o:
	$(CC) $(CFLAGS) -fPIC -c $<

all: mainshared mainstatic

mainshared: main.o libshared.so
	$(CC) -o mainshared main.o libshared.so

mainstatic: main.o libstatic.a
	$(CC) -o mainstatic main.o libstatic.a

# Have to specify -shared option when making a shared library
libshared.so: $(OBJS)
	$(CC) -shared -o libshared.so $(OBJS)

# Use ar and ranlib to make a static library
libstatic.a: $(OBJS)
	ar q libstatic.a $(OBJS)
	ranlib libstatic.a

clean:
	rm -f main.o mainshared mainstatic libshared.so libstatic.a $(OBJS) *~
