Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==================================
- # Makefile for building: libsopp.a
- #==================================
- # Definitions
- #------------
- # C compiler
- CC = gcc
- # C++ compiler
- CXX = g++
- # Include file directory
- INC_DIR = ./include
- # Object file directory
- OBJ_DIR = ./obj
- # Phony declarations
- #-------------------
- .PHONY: install clean object_directory
- # Macros
- #-------
- # Tests for the lib directory
- TEST_LIB = test -d /usr/lib/json
- # Make the lib directory
- MAKE_LIB = mkdir /usr/lib/json
- # Tests for the obj directory
- TEST_OBJ = test -d obj
- # Tests for the absence of the obj directory
- TEST_AGAINST_OBJ = test ! -d obj
- # Tests for the absence of libjsoncpp.a
- TEST_AGAINST_A = test ! -e libjsoncpp.a
- # Tests for the absence of libjsoncpp.so
- TEST_AGAINST_SO = test ! -e libjsoncpp.so
- # Makes the obj directory
- MAKE_OBJ = mkdir obj
- # Removes the obj directory
- REM_OBJ = rm -r obj
- all: object_directory json_reader.o json_writer.o json_value.o
- ar -r libjsoncpp.a obj/json_reader.o obj/json_writer.o obj/json_value.o
- g++ -o libjsoncpp.so -shared obj/json_reader.o obj/json_writer.o obj/json_value.o
- json_reader.o: src/lib_json/json_reader.cpp
- $(CXX) -I $(INC_DIR) -c -o obj/json_reader.o src/lib_json/json_reader.cpp -fPIC
- json_writer.o: src/lib_json/json_writer.cpp
- $(CXX) -I $(INC_DIR) -c -o obj/json_writer.o src/lib_json/json_writer.cpp -fPIC
- json_value.o: src/lib_json/json_value.cpp
- $(CXX) -I $(INC_DIR) -c -o obj/json_value.o src/lib_json/json_value.cpp -fPIC
- object_directory:
- $(TEST_OBJ) || $(MAKE_OBJ)
- install:
- mkdir -p $(DESTDIR)/usr/include
- mkdir -p $(DESTDIR)/usr/lib
- cp -r include/json --target-directory=$(DESTDIR)/usr/include
- cp libjsoncpp.a $(DESTDIR)/usr/lib/libjsoncpp.a
- cp libjsoncpp.so $(DESTDIR)/usr/lib/libjsoncpp.so
- clean:
- $(TEST_AGAINST_OBJ) || $(REM_OBJ)
- $(TEST_AGAINST_A) || rm libjsoncpp.a
- $(TEST_AGAINST_SO) || rm libjsoncpp.so
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement