TARGETS=func fpointer macros pointer struct reference counter exception1 iostream test
OBJECTS=class.o class1.o copycon.o defaultarg.o namespace.o static.o storage.o

CC=gcc
CXX=g++
CFLAGS=
LDFLAGS=
CPPFLAGS=

all: $(TARGETS) $(OBJECTS)

.SUFFIXES: .c .o .cpp

.cpp.o:
        $(CXX) -c $< $(CXXFLAGS) -o $@

.c.o:
        $(CC) -c $< $(CFLAGS) -o $@

clean:
        rm -f *.o
        rm -f $(TARGETS)

func: func.o
        $(CC) $< $(LDFLAGS) -o $@

fpointer: fpointer.o
        $(CC) $< $(LDFLAGS) -o $@

macros: macros.o
        $(CC) $< $(LDFLAGS) -o $@

pointer: pointer.o
        $(CC) $< $(LDFLAGS) -o $@

struct: struct.o
        $(CC) $< $(LDFLAGS) -o $@

reference: reference.o
        $(CXX) $< $(LDFLAGS) -o $@

counter: counter.o
        $(CC) $< $(LDFLAGS) -o $@

exception1: exception1.o
        $(CXX) $< $(LDFLAGS) -o $@

iostream: iostream.o
        $(CXX) $< $(LDFLAGS) -o $@

test: test.o
        $(CC) $< $(LDFLAGS) -o $@