forked from ground/ground
Allow static linking to Ground
This commit is contained in:
9
Makefile
9
Makefile
@@ -1,4 +1,5 @@
|
||||
CC = gcc
|
||||
AR = ar
|
||||
CFLAGS += -Wall -Wextra -Isrc/include -Iinclude -ggdb
|
||||
LDFLAGS += -ldl -rdynamic
|
||||
|
||||
@@ -17,6 +18,7 @@ OBJ_DIR = $(BUILD_DIR)/obj
|
||||
# Output names
|
||||
EXECUTABLE = $(BIN_DIR)/ground
|
||||
SHARED_LIB = $(LIB_DIR)/libgroundvm.so
|
||||
STATIC_LIB = $(LIB_DIR)/libgroundvm.a
|
||||
HEADERS = $(INC_DIR)/groundvm.h $(INC_DIR)/groundext.h
|
||||
|
||||
# Source files
|
||||
@@ -41,7 +43,7 @@ executable: $(EXECUTABLE)
|
||||
|
||||
# Build shared library
|
||||
.PHONY: library
|
||||
library: $(SHARED_LIB) $(HEADERS)
|
||||
library: $(SHARED_LIB) $(STATIC_LIB) $(HEADERS)
|
||||
|
||||
# Build both
|
||||
.PHONY: both
|
||||
@@ -59,6 +61,10 @@ $(EXECUTABLE): $(EXE_OBJECTS) | $(BIN_DIR)
|
||||
$(SHARED_LIB): $(LIB_OBJECTS) | $(LIB_DIR)
|
||||
$(CC) -shared $(LIB_OBJECTS) -o $@ $(LDFLAGS)
|
||||
|
||||
# Build static library
|
||||
$(STATIC_LIB): $(LIB_OBJECTS) | $(LIB_DIR)
|
||||
$(AR) rcs $(STATIC_LIB) $(LIB_OBJECTS)
|
||||
|
||||
# Copy header for library distribution
|
||||
$(INC_DIR)/%.h: include/%.h | $(INC_DIR)
|
||||
cp $< $@
|
||||
@@ -88,6 +94,7 @@ install: both
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/include
|
||||
cp $(EXECUTABLE) $(DESTDIR)$(PREFIX)/bin/
|
||||
cp $(SHARED_LIB) $(DESTDIR)$(PREFIX)/lib/
|
||||
cp $(STATIC_LIB) $(DESTDIR)$(PREFIX)/lib/
|
||||
cp $(HEADERS) $(DESTDIR)$(PREFIX)/include/
|
||||
echo "$(DESTDIR)$(PREFIX)/lib" | tee $(DESTDIR)/etc/ld.so.conf.d/cground.conf
|
||||
ldconfig
|
||||
|
||||
Reference in New Issue
Block a user