1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
Target :=   Functions
MainSources :=  DynFunctionRegistry.cpp TestFunctions.cpp
SharedSrc :=    Cosinus.cpp Sinus.cpp
CPPFiles := $(wildcard *.cpp)
SharedObjs :=   $(patsubst %.cpp,%.so,$(SharedSrc))
MainObjs := $(patsubst %.cpp,%.o,$(MainSources))

CC :=       g++
CXX :=      g++
CXXFLAGS := -std=gnu++11 -Wall -g
CPPFLAGS :=
SHARED :=   -fPIC -shared
LDFLAGS :=  -rdynamic

.PHONY:     all depend clean realclean
all:        makefile $(Target) $(SharedObjs)
depend: ;   gcc-makedepend $(CPPFLAGS) $(CPPFiles)
makefile:   $(Sources)
        gcc-makedepend $(CPPFLAGS) $(CPPFiles)
clean: ;    rm -f $(MainObjs)
realclean:  clean
        rm -f $(Target) $(SharedObjs)

$(Target):  $(MainObjs)
        $(CXX) -o $@ $(LDFLAGS) $(MainObjs) $(LDLIBS)

$(SharedObjs):  %.so: %.cpp
        $(CXX) -o $@ $(CXXFLAGS) $(SHARED) $(LDFLAGS) $< $(LDLIBS)

# DO NOT DELETE
Cosinus.o: Cosinus.cpp Cosinus.hpp Function.hpp
Sinus.o: Sinus.cpp Sinus.hpp Function.hpp
DynFunctionRegistry.o: DynFunctionRegistry.cpp DynFunctionRegistry.hpp \
 Function.hpp
TestFunctions.o: TestFunctions.cpp DynFunctionRegistry.hpp Function.hpp