Sleds/cppjson/Makefile

94 lines
1.9 KiB
Makefile
Raw Normal View History

2025-03-13 21:28:38 +00:00
# cppjson/Makefile
# This will build for all platforms except iOS (XCode is used)
#
include ../masterbuild/platform.mk
CFLAGS = #-I../ionu-boost #${DEF_CFLAGS}
LDFLAGS = #${DEF_LDFLAGS}
CC = g++
# linking stuff
LIBDIRS = -L.
LIBS = lib/${PLATFORM}/libjsonobject.a
EXECLIBS = -lm
STATICLIBS = -lm
# platform dependent libraries and flags
ifeq (${PLATFORM},Darwin)
LIBRARIES =
LDFLAGS = ${LIBDIRS} -std=gnu++11
#-stdlib=libc++
CFLAGS += -DLINUX -I/usr/local/include -I/opt/local/include
CPPFLAGS = ${CFLAGS} ${PLATFORMFLAGS} -fPIC -std=gnu++11
#-stdlib=libc++
LD = ${CPP11}
else
LIBRARIES = -lstdc++
LDFLAGS += ${LIBDIRS} -L/usr/local/lib -std=c++11
CFLAGS += -DLINUX -I/usr/local/include
CPPFLAGS = ${CFLAGS} -fPIC -std=c++11 -Wno-unused-local-typedefs
LD = ${CPP11}
endif
OBJS = obj/${PLATFORM}/jsonobject.o \
obj/${PLATFORM}/json.o
docs:
ifeq (${UNAME},Linux)
doxygen cppjson.dox
cd lib/docs/html; jar -cvf ../cppjson.docs.jar *
endif
all: showconfig init ${LIBS}
@echo all
compile: all
@echo compile
libs: ${LIBS}
analyze:
obj/${PLATFORM}/jsonobject.o: jsonobject.cpp jsonobject.h json.h
${CC} ${CPPFLAGS} -c jsonobject.cpp -o $*.o
obj/${PLATFORM}/json.o: json.cpp json.h
${CC} ${CPPFLAGS} -c json.cpp -o $*.o
${LIBS}: init ${OBJS}
@echo libs ${LIBS}
rm -f ${LIBS} ; ar -cr ${LIBS} ${OBJS}
clean:
@echo clean
rm -f ${LIBS}
rm -f ${OBJS}
rm -f bin/${PLATFORM}/*
testjson: testjson/testjson.cpp ${LIBS}
@echo testapi
${CC} ${CPPFLAGS} -fopenmp -o bin/${PLATFORM}/testjson testjson/testjson.cpp lib/${PLATFORM}/jsonobject.a ${LDFLAGS}
testC: ${LIBS} testjson
@echo "\n\n*** testjson ***"
./bin/${PLATFORM}/testjson
ifeq (${PLATFORM},Darwin)
test:
@echo Tests disabled for Darwin because of openmp
else
test: testC
@echo "\n\nTESTS SUCCESSFUL!"
endif
package:
@echo "Nothing to package"
install: all docs
@echo "installed"
deploy: install
@echo "nothing to deploy"