このメイクファイルは、.o
ファイルをsrc/branch/
に、またメイクファイルを含む最上位のプロジェクトディレクトリに生成します。メイクファイルが現在のディレクトリにオブジェクトファイルを生成するのはなぜですか?
CXX := g++
SRC += $(wildcard src/file/*.cpp)
SRC += $(wildcard src/random/*.cpp)
SRC += $(wildcard src/termui/*.cpp)
SRC += $(wildcard src/graphics/*.cpp)
SRC += $(wildcard src/memory/*.cpp)
SRC += $(wildcard src/*.cpp)
OBJ := $(SRC:.cpp=.o)
MAIN=ProcC
CXXFLAGS := -g -fPIC -std=c++11 -fpermissive
LIBS := -lboost_system -lboost_serialization -lboost_filesystem
LIBDIR = -L ~/c/libraries/boost/lib -L ~/c/libraries/SFGUI-0.3.0/lib
INCDIR = -I include/ -I ~/c/libraries/boost/include/
.PHONY: depend clean
all: $(MAIN)
@echo Successfully compiled ProcC source code
$(MAIN): $(OBJ)
@echo Linking ProcC objects and dependencies into executable.
$(CXX) $(CXXFLAGS) $(INCDIR) $(LIBDIR) -c $(SRC) $(LIBS)
rm *.o
.cpp.o:
@echo Compiling ProcC source code into objects.
$(CXX) $(CXXFLAGS) $(INCDIR) -c $< -o [email protected]
clean:
$(RM) $(OBJ)
depend: $(SRCS)
makedepend $(INCDIR) $^
このメイクファイルは、ソースからのオブジェクトではなく、 実行可能ファイルを生成するようになっています。私は.so
ファイルをこのプロジェクトからライブラリとして作成しようとしています。このメイクファイルで間違っていることはありますか?
'all'も' .PHONY'であり、 'depend'は不要です。 –