This is what I finally did.
Example Makefile:
Code:
TARGET:= main
DIR:=../../framework/
SRC:=mygl.cpp
CXX:=g++
CXXFLAGS :=-Wall -std=c++11 -g
LDFLAGS := -lframework -lpthread -lGL -lGLEW -lsfml-system -lsfml-window
default: $(TARGET)
lib:
make -j9 -C $(DIR)
$(TARGET): $(SRC) lib
$(CXX) $(SRC) -I$(DIR) -L$(DIR) $(LDFLAGS) $(CXXFLAGS) -o $(TARGET)
clean:
rm $(TARGET)
make clean -C $(DIR)
Framework Makefile:
Code:
CXX:= g++
CXXFLAGS :=-c -Wall -std=c++11 -g
SRCS := $(wildcard *.cpp)
OBJS := $(patsubst %.cpp, %.o, $(SRCS))
TARGET := libframework.a
default : $(TARGET)
%.o : %.cpp %.h
$(CXX) $(CXXFLAGS) $< -o $@
$(TARGET) : $(OBJS)
ar rcs $(TARGET) $^
clean :
rm -f $(OBJS) $(TARGET) *~ *.a *.o