summaryrefslogtreecommitdiff
path: root/src/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..b5eddff
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,45 @@
+libcacard_includedir=$(includedir)/cacard
+
+TOOLS += vscclient$(EXESUF)
+
+# objects linked into a shared library, built with libtool with -fPIC if required
+libcacard-obj-y = $(libcacard-y)
+libcacard-lobj-y=$(patsubst %.o,%.lo,$(libcacard-obj-y))
+
+# libtool will build the .o files, too
+$(libcacard-obj-y): | $(libcacard-lobj-y)
+
+all: libcacard.la libcacard.pc
+
+vscclient$(EXESUF): libcacard/vscclient.o libcacard.la
+ $(call LINK,$^)
+
+#########################################################################
+# Rules for building libcacard standalone library
+
+libcacard.la: LDFLAGS += -rpath $(libdir) -no-undefined \
+ -export-symbols $(SRC_PATH)/libcacard/libcacard.syms
+# Prevent libcacard.so linking against the entire world of 3rd party libs
+libcacard.la: LIBS =
+libcacard.la: $(libcacard-lobj-y)
+ $(call LINK,$^)
+
+libcacard.pc: $(SRC_PATH)/libcacard/libcacard.pc.in
+ $(call quiet-command,sed -e 's|@LIBDIR@|$(libdir)|' \
+ -e 's|@INCLUDEDIR@|$(libcacard_includedir)|' \
+ -e 's|@VERSION@|$(shell cat $(SRC_PATH)/VERSION)|' \
+ -e 's|@PREFIX@|$(prefix)|' $< > libcacard.pc,\
+ " GEN $@")
+
+.PHONY: install-libcacard
+
+install: install-libcacard
+install-libcacard: libcacard.pc libcacard.la
+ $(INSTALL_DIR) "$(DESTDIR)$(libdir)"
+ $(INSTALL_DIR) "$(DESTDIR)$(libdir)/pkgconfig"
+ $(INSTALL_DIR) "$(DESTDIR)$(libcacard_includedir)"
+ $(INSTALL_LIB) libcacard.la "$(DESTDIR)$(libdir)"
+ $(INSTALL_DATA) libcacard.pc "$(DESTDIR)$(libdir)/pkgconfig"
+ for inc in $(SRC_PATH)/libcacard/*.h; do \
+ $(INSTALL_DATA) $$inc "$(DESTDIR)$(libcacard_includedir)"; \
+ done