CC ?= gcc CXX ?= g++ CFLAGS += -O2 -Wall -g -fPIC CXXFLAGS += $(CFLAGS) all: clknetsim.so clknetsim clientobjs = client.o serverobjs = $(patsubst %.cc,%.o,$(wildcard *.cc)) clknetsim.so: $(clientobjs) $(CC) $(CFLAGS) -shared -o $@ $^ $(LDFLAGS) -ldl -lm clknetsim: $(serverobjs) $(CXX) $(CFLAGS) -o $@ $^ $(LDFLAGS) clean: rm -rf server *.so *.o core.* .deps .deps: @mkdir .deps .deps/%.d: %.c .deps @$(CC) -MM $(CPPFLAGS) -MT '$(<:%.c=%.o) $@' $< -o $@ .deps/%.D: %.cc .deps @$(CXX) -MM $(CPPFLAGS) -MT '$(<:%.cc=%.o) $@' $< -o $@ -include $(clientobjs:%.o=.deps/%.d) $(serverobjs:%.o=.deps/%.D)