Noise-1.0.0: libnoise/noise/src/Makefile
LIBTOOL=libtool
# defines source files and vpaths
include Sources
DEPENDS=$(SOURCES:.cpp=.d)
# What source objects are we building?
OBJECTS=$(SOURCES:.cpp=.o)
.PHONY: all clean cleandeps cleanobjs cleanlib libnoise libnoise.so libnoise.so.0
# hooks for future makefiles being able to make multiple SOs, or older SOs
libnoise: libnoise.so libnoise.a libnoise.la
libnoise.so: libnoise.so.0
libnoise.so.0: libnoise.so.0.3
# Real build targets
libnoise.so.0.3: $(OBJECTS)
$(LIBTOOL) --mode=link $(CXX) $(LDFLAGS) -shared -Wl,-soname=libnoise.so.0 -o $@ $(OBJECTS:.o=.lo)
libnoise.a: $(OBJECTS)
$(LIBTOOL) --mode=link $(CXX) $(LDFLAGS) -o $@ $(OBJECTS)
libnoise.la: $(OBJECTS)
$(LIBTOOL) --mode=link $(CXX) $(LDFLAGS) -o $@ $(OBJECTS:.o=.lo)
clean: cleandeps cleanobjs cleanlib
cleandeps:
-rm $(DEPENDS)
cleanobjs:
-rm $(OBJECTS)
-rm $(OBJECTS:.o=.lo) #clean up after libtool
-rm -rf .libs model/.libs module/.libs
cleanlib:
-rm libnoise.so.0.3
-rm libnoise.a
-rm libnoise.la
# Utility rules
# Generates dependancy files:
%.d: %.cpp
@set -e; rm -f $@; \
$(CXX) -MM $(CPPFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
# C and C++ libtool (rather than raw CXX/CC) use
%.o %.lo: %.cpp
$(LIBTOOL) --mode=compile $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $(@:.lo=.o)
%.o %.lo: %.c
$(LIBTOOL) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $(@:.lo=.o)
# If dependancies have never been built this will produce a horde of
# "file not found" warnings and *then* build the deps. Very odd.
include $(DEPENDS)