Skip to content

Commit

Permalink
make: Add support for make install
Browse files Browse the repository at this point in the history
Signed-off-by: Siddharth Chandrasekaran <[email protected]>
  • Loading branch information
sidcha committed Mar 13, 2024
1 parent 8d8f72c commit ee54dec
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 20 deletions.
26 changes: 16 additions & 10 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,14 @@ endif
all: libosdp $(TARGETS)

.PHONY: libosdp
libosdp: $(O)/utils/libutils.a
libosdp: $(O)/libosdp.a $(O)/libosdp.pc

.PHONY: pd_app
pd_app: $(O)/pd_app.elf

.PHONY: cp_app
cp_app: $(O)/cp_app.elf

.PHONY: libutils
libutils: $(O)/utils/libutils.a

$(O)/%.o: %.c
@echo " CC $<"
@mkdir -p $(@D)
Expand All @@ -48,9 +45,6 @@ $(O)/libosdp.a: $(OBJ_LIBOSDP)
@echo " AR $(@F)"
$(Q)$(AR) qc $@ $^

$(O)/utils/libutils.a:
$(Q)make -C utils Q=$(Q) O=$(O)/utils CC=$(CC)

## Samples

$(O)/cp_app.elf: $(O)/libosdp.a
Expand All @@ -75,9 +69,21 @@ check: clean $(OBJ_TEST)
.PHONY: clean
clean:
$(Q)rm -f $(O)/src/*.o $(O)/src/crypto/*.o $(OBJ_TEST)
$(Q)rm -f $(O)/*.a $(O)/*.elf
$(Q)make -C utils Q=$(Q) O=$(O)/utils clean
$(Q)rm -f $(O)/*.a $(O)/*.elf $(O)/*.pc

.PHONY: distclean
distclean: clean
$(Q)rm -rf config.make $(O)
$(Q)rm config.make
$(Q)rm -rf $(O)

## Install

.PHONY: install
install: libosdp
install -d $(DESTDIR)$(PREFIX)/lib/
install -m 644 $(O)/libosdp.a $(DESTDIR)$(PREFIX)/lib/
install -d $(DESTDIR)$(PREFIX)/lib/pkgconfig
install -m 644 $(O)/libosdp.pc $(DESTDIR)$(PREFIX)/lib/pkgconfig/
install -d $(DESTDIR)$(PREFIX)/include/
install -m 644 include/osdp.h $(DESTDIR)$(PREFIX)/include/
install -m 644 include/osdp.hpp $(DESTDIR)$(PREFIX)/include/
34 changes: 24 additions & 10 deletions configure.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ usage() {
--static-pd Setup PD single statically
--lib-only Only build the library
--cross-compile PREFIX Use to pass a compiler prefix
--prefix PATH Install path prefix (default: /usr)
--build-dir Build output directory (default: ./build)
-d, --debug Enable debug builds
-f, --force Use this flags to override some checks
Expand All @@ -40,6 +41,7 @@ while [ $# -gt 0 ]; do
--data-trace) DATA_TRACE=1;;
--skip-mark) SKIP_MARK_BYTE=1;;
--cross-compile) CROSS_COMPILE=$2; shift;;
--prefix) PREFIX=$2; shift;;
--crypto) CRYPTO=$2; shift;;
--crypto-include-dir) CRYPTO_INCLUDE_DIR=$2; shift;;
--crypto-ld-flags) CRYPTO_LD_FLAGS=$2; shift;;
Expand Down Expand Up @@ -163,17 +165,29 @@ if [[ ! -z "${LIB_ONLY}" ]]; then
TARGETS=""
fi

if [[ -z "${PREFIX}" ]]; then
PREFIX="/usr"
fi

## Generate libosdp.pc
echo "Generating libosdp.pc"
sed -e "s|@CMAKE_INSTALL_PREFIX@|${PREFIX}|" \
-e "s|@PROJECT_NAME@|${PROJECT_NAME}|" \
-e "s|@PROJECT_DESCRIPTION@|Open Supervised Device Protocol (OSDP) Library|" \
-e "s|@PROJECT_URL@|https://github.com/goToMain/libosdp|" \
-e "s|@PROJECT_VERSION@|${PROJECT_VERSION}|" \
misc/libosdp.pc.in > ${BUILD_DIR}/libosdp.pc

## Generate osdp_config.h
echo "Generating osdp_config.h"
CONFIG_OUT=${BUILD_DIR}/osdp_config.h
cp src/osdp_config.h.in ${CONFIG_OUT}
sed -ie "s/@PROJECT_VERSION@/${PROJECT_VERSION}/" ${CONFIG_OUT}
sed -ie "s/@PROJECT_NAME@/${PROJECT_NAME}/" ${CONFIG_OUT}
sed -ie "s/@GIT_BRANCH@/${GIT_BRANCH}/" ${CONFIG_OUT}
sed -ie "s/@GIT_REV@/${GIT_REV}/" ${CONFIG_OUT}
sed -ie "s/@GIT_TAG@/${GIT_TAG}/" ${CONFIG_OUT}
sed -ie "s/@GIT_DIFF@/${GIT_DIFF}/" ${CONFIG_OUT}
sed -ie "s|@REPO_ROOT@|${SCRIPT_DIR}|" ${CONFIG_OUT}
sed -e "s|@PROJECT_VERSION@|${PROJECT_VERSION}|" \
-e "s|@PROJECT_NAME@|${PROJECT_NAME}|" \
-e "s|@GIT_BRANCH@|${GIT_BRANCH}|" \
-e "s|@GIT_REV@|${GIT_REV}|" \
-e "s|@GIT_TAG@|${GIT_TAG}|" \
-e "s|@GIT_DIFF@|${GIT_DIFF}|" \
-e "s|@REPO_ROOT@|${SCRIPT_DIR}|" \
src/osdp_config.h.in > ${BUILD_DIR}/osdp_config.h

## Generate osdp_exports.h
echo "Generating osdp_exports.h"
Expand All @@ -199,10 +213,10 @@ CCFLAGS=${CCFLAGS}
CXXFLAGS=${CXXFLAGS}
LDFLAGS=${LDFLAGS}
SRC_LIBOSDP=${LIBOSDP_SOURCES}
SRC_OSDPCTL=${OSDPCTL_SOURCES}
SRC_TEST=${TEST_SOURCES}
TARGETS=${TARGETS}
BUILD_DIR=$(realpath ${BUILD_DIR})
PREFIX=${PREFIX}
---
echo
echo "LibOSDP lean build system configured!"
Expand Down

0 comments on commit ee54dec

Please sign in to comment.