]> git.codecow.com Git - Monocypher.git/commitdiff
Various makefile cleanups
authorLoup Vaillant <loup@loup-vaillant.fr>
Thu, 2 Apr 2020 21:22:02 +0000 (23:22 +0200)
committerLoup Vaillant <loup@loup-vaillant.fr>
Thu, 2 Apr 2020 21:27:49 +0000 (23:27 +0200)
Moved the pkg-config files elsewhere, to simplify the makefile. A simple
variable substitution takes care of $(PREFIX).

Fixed missing "/" in libdir path (which somehow didn't seem to confuse
pkg-config).

Path variable no longer include $(DESTDIR). Instead, we prefix it
explicitly every time we use a path.

makefile
monocypher.pc [new file with mode: 0644]
tests/speed/libhydrogen.pc [new file with mode: 0644]

index 86048aacecd31ee24c33ad815d9e903cb5a13511..7e838c439dfcc9f5720240e9539e2c7107bdcb70 100644 (file)
--- a/makefile
+++ b/makefile
@@ -54,15 +54,16 @@ CFLAGS= -pedantic -Wall -Wextra -O3 -march=native
 DESTDIR=
 PREFIX=usr/local
 LIBDIR=$(PREFIX)/lib
-PKGCONFIG=$(DESTDIR)/$(LIBDIR)/pkgconfig
-MAN_DIR=$(DESTDIR)/$(PREFIX)/share/man/man3
+INCLUDEDIR=$(PREFIX)/include
+PKGCONFIGDIR=$(LIBDIR)/pkgconfig
+MANDIR=$(PREFIX)/share/man/man3
 SONAME=libmonocypher.so.3
 
 VERSION=__git__
 
 ifdef USE_ED25519
 LINK_ED25519=lib/monocypher-ed25519.o
-INSTALL_ED25519=cp src/optional/monocypher-ed25519.h $(DESTDIR)/$(PREFIX)/include
+INSTALL_ED25519=cp src/optional/monocypher-ed25519.h $(DESTDIR)/$(INCLUDEDIR)
 endif
 
 .PHONY: all library static-library dynamic-library                     \
@@ -73,50 +74,27 @@ endif
         dist
 
 all    : library
-install: library src/monocypher.h install-doc
-       mkdir -p $(DESTDIR)/$(PREFIX)/include
+install: library src/monocypher.h monocypher.pc install-doc
+       mkdir -p $(DESTDIR)/$(INCLUDEDIR)
        mkdir -p $(DESTDIR)/$(LIBDIR)
-       mkdir -p $(PKGCONFIG)
+       mkdir -p $(DESTDIR)/$(PKGCONFIGDIR)
        cp -P lib/libmonocypher.a lib/libmonocypher.so* $(DESTDIR)/$(LIBDIR)
-       cp src/monocypher.h $(DESTDIR)/$(PREFIX)/include
+       cp src/monocypher.h $(DESTDIR)/$(INCLUDEDIR)
        $(INSTALL_ED25519)
-       @echo "Creating $(PKGCONFIG)/monocypher.pc"
-       @echo "prefix=/$(PREFIX)"                > $(PKGCONFIG)/monocypher.pc
-       @echo 'exec_prefix=$${prefix}'          >> $(PKGCONFIG)/monocypher.pc
-       @echo 'libdir=$(LIBDIR)'                >> $(PKGCONFIG)/monocypher.pc
-       @echo 'includedir=$${prefix}/include'   >> $(PKGCONFIG)/monocypher.pc
-       @echo ''                                >> $(PKGCONFIG)/monocypher.pc
-       @echo 'Name: monocypher'                >> $(PKGCONFIG)/monocypher.pc
-       @echo 'Version: ' $(VERSION)            >> $(PKGCONFIG)/monocypher.pc
-       @echo 'Description: Easy to use, easy to deploy crypto library' \
-                                                >> $(PKGCONFIG)/monocypher.pc
-       @echo ''                                >> $(PKGCONFIG)/monocypher.pc
-       @echo 'Libs: -L$${libdir} -lmonocypher' >> $(PKGCONFIG)/monocypher.pc
-       @echo 'Cflags: -I$${includedir}'        >> $(PKGCONFIG)/monocypher.pc
+       sed "s|PREFIX|$(PREFIX)|"  monocypher.pc \
+            > $(DESTDIR)/$(PKGCONFIGDIR)/monocypher.pc
 
 install-doc:
-       mkdir -p $(MAN_DIR)
-       cp -PR doc/man/man3/*.3monocypher $(MAN_DIR)
+       mkdir -p $(DESTDIR)/$(MANDIR)
+       cp -PR doc/man/man3/*.3monocypher $(DESTDIR)/$(MANDIR)
 ifdef USE_ED25519
-       cp -PR doc/man/man3/optional/*.3monocypher $(MAN_DIR)
+       cp -PR doc/man/man3/optional/*.3monocypher $(DESTDIR)/$(MANDIR)
 endif
 
 pkg-config-libhydrogen:
-       mkdir -p $(PKGCONFIG)
-       @echo "Creating $(PKGCONFIG)/libhydrogen.pc"
-       @echo "prefix=/$(PREFIX)"               > $(PKGCONFIG)/libhydrogen.pc
-       @echo 'exec_prefix=$${prefix}'         >> $(PKGCONFIG)/libhydrogen.pc
-       @echo 'libdir=$${exec_prefix}/lib'     >> $(PKGCONFIG)/libhydrogen.pc
-       @echo 'includedir=$${prefix}/include'  >> $(PKGCONFIG)/libhydrogen.pc
-       @echo ''                               >> $(PKGCONFIG)/libhydrogen.pc
-       @echo 'Name: libhydrogen'              >> $(PKGCONFIG)/libhydrogen.pc
-       @echo 'Version: git-HEAD'              >> $(PKGCONFIG)/libhydrogen.pc
-       @echo 'Description: Small, easy-to-use,'      \
-              'hard-to-misuse cryptographic library.' \
-                                               >> $(PKGCONFIG)/libhydrogen.pc
-       @echo ''                               >> $(PKGCONFIG)/libhydrogen.pc
-       @echo 'Libs: -L$${libdir} -lhydrogen'  >> $(PKGCONFIG)/libhydrogen.pc
-       @echo 'Cflags: -I$${includedir}'       >> $(PKGCONFIG)/libhydrogen.pc
+       mkdir -p $(DESTDIR)/$(PKGCONFIGDIR)
+       sed "s|PREFIX|$(PREFIX)|" tests/speed/libhydrogen.pc \
+            > $(DESTDIR)/$(PKGCONFIGDIR)/libhydrogen.pc
 
 library: static-library dynamic-library
 static-library : lib/libmonocypher.a
@@ -129,9 +107,10 @@ clean:
 uninstall:
        rm -f $(DESTDIR)/$(LIBDIR)/libmonocypher.a
        rm -f $(DESTDIR)/$(LIBDIR)/libmonocypher.so*
-       rm -f $(DESTDIR)/$(PREFIX)/include/monocypher.h
-       rm -f $(PKGCONFIG)/monocypher.pc
-       rm -f $(MAN_DIR)/*.3monocypher
+       rm -f $(DESTDIR)/$(INCLUDEDIR)/monocypher.h
+       rm -f $(DESTDIR)/$(INCLUDEDIR)/monocypher-ed25519.h
+       rm -f $(DESTDIR)/$(PKGCONFIGDIR)/monocypher.pc
+       rm -f $(DESTDIR)/$(MANDIR)/*.3monocypher
 
 check: test
 test           : test.out
diff --git a/monocypher.pc b/monocypher.pc
new file mode 100644 (file)
index 0000000..a117466
--- /dev/null
@@ -0,0 +1,11 @@
+prefix=/PREFIX
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: monocypher
+Version: __git__
+Description: Easy to use, easy to deploy crypto library
+
+Libs: -L${libdir} -lmonocypher
+Cflags: -I${includedir}
diff --git a/tests/speed/libhydrogen.pc b/tests/speed/libhydrogen.pc
new file mode 100644 (file)
index 0000000..88d06a8
--- /dev/null
@@ -0,0 +1,12 @@
+prefix=/PREFIX
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: libhydrogen
+Version: git-HEAD
+Description: Small, easy-to-use,
+hard-to-misuse cryptographic library.
+
+Libs: -L${libdir} -lhydrogen
+Cflags: -I${includedir}