EXECUTABLE := wiifly_mod.so HEADERS := V3/*.h SOURCES := $(wildcard V3/*.cpp) OBJS := $(SOURCES:.cpp=.o) CC := g++ CFLAGS := -I. -Wall -fPIC LDFLAGS := -shared -L/usr/local/share/wgd/modules # Man, talk about dependencies LDLIBS := -lbluetooth -lGL -lGLU -lX11 -lXxf86vm -lwgd_base -lwgd_resources_base -lwgd_heightmap -lwgd_base3d -lwgd_models -lwgd_widgets -lwgd_input -ldoste ARCH := $(shell uname -m) ifeq ($(ARCH), x86_64) CFLAGS += -DX86_64 else CFLAGS += -march=pentium3 -mfpmath=sse endif # generates debug info for gdb ifdef DEBUG CFLAGS += -g endif # generates profiling data (analyse with gprof) ifdef PROFILE CFLAGS += -pg endif all: $(EXECUTABLE) # Generate a .o file from a .cpp file # Note: $< evaluates to the first dependency listed # Note: $@ evaluates to the target (the .o file) %.o: %.cpp $(HEADERS) $(CC) $(CFLAGS) -c $< -o $@ # Generate the library file $(EXECUTABLE) : $(OBJS) $(LIBFILE) $(CC) $(LDFLAGS) $(OBJS) $(LDLIBS) -o $(EXECUTABLE) .PHONY: clean clean: rm -f *~ */*~ $(OBJS) $(EXECUTABLE)