+++ /dev/null
-.PHONY: all
-
-all: wgtpkg-install wgtpkg-pack wgtpkg-sign
-
-O = -DPREDIR='""'
-
-INCS = wgtpkg.h
-
-COMSRCS = \
- wgtpkg-base64.c \
- wgtpkg-certs.c \
- wgtpkg-digsig.c \
- wgtpkg-files.c \
- wgtpkg-workdir.c \
- wgtpkg-xmlsec.c \
- wgtpkg-zip.c
-
-
-INSTALLSRCS = wgtpkg-install.c $(COMSRCS)
-
-PACKSRCS = wgtpkg-install.c $(COMSRCS)
-
-XMLSECOPT = $(shell pkg-config --cflags --libs xmlsec1)
-
-wgtpkg-%: wgtpkg-%.c $(COMSRCS) $(INCS)
- gcc $O -g -o wgtpkg-$* wgtpkg-$*.c $(COMSRCS) -lzip -lxml2 -lcrypto $(XMLSECOPT) -Wall -Wno-pointer-sign
-
-
-
--- /dev/null
+bin_PROGRAMS = wgtpkg-install wgtpkg-pack wgtpkg-sign
+
+COMMONSRCS = wgtpkg-base64.c wgtpkg-certs.c wgtpkg-digsig.c wgtpkg-files.c wgtpkg-workdir.c wgtpkg-xmlsec.c wgtpkg-zip.c
+
+AM_CFLAGS = -Wall -Wno-pointer-sign
+AM_CFLAGS += -ffunction-sections -fdata-sections
+AM_CFLAGS += ${ZIP_CFLAGS} ${XML2_CFLAGS} ${OPENSSL_CFLAGS} ${XMLSEC_CFLAGS}
+
+AM_LDFLAGS = -Wl,--gc-sections
+
+LDADD = ${ZIP_LIBS} ${XML2_LIBS} ${OPENSSL_LIBS} ${XMLSEC_LIBS}
+
+wgtpkg_install_SOURCES = wgtpkg-install.c ${COMMONSRCS}
+
+wgtpkg_sign_SOURCES = wgtpkg-sign.c ${COMMONSRCS}
+
+wgtpkg_pack_SOURCES = wgtpkg-pack.c ${COMMONSRCS}
+
--- /dev/null
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.69])
+AC_INIT([wgtpkg], [1.0], [wgtpkg@iot.bzh])
+AM_INIT_AUTOMAKE
+#AM_INIT_AUTOMAKE([-Wall -Wno-pointer-sign])
+AC_CONFIG_SRCDIR([wgtpkg-files.c])
+AC_CONFIG_HEADERS([config.h])
+
+# Checks for programs.
+#AC_PROG_CXX
+AC_PROG_CC
+
+# Checks for libraries.
+# FIXME: Replace `main' with a function in `-lcrypto':
+#AC_CHECK_LIB([crypto], [d2i_X509])
+# FIXME: Replace `main' with a function in `-lxml2':
+#AC_CHECK_LIB([xml2], [xmlSaveFormatFileEnc])
+# FIXME: Replace `main' with a function in `-lzip':
+#AC_CHECK_LIB([zip], [zip_open])
+
+PKG_CHECK_MODULES([ZIP], [libzip])
+PKG_CHECK_MODULES([XML2], [libxml-2.0])
+PKG_CHECK_MODULES([OPENSSL], [openssl])
+PKG_CHECK_MODULES([XMLSEC], [xmlsec1 xmlsec1-openssl])
+
+# Checks for header files.
+AC_CHECK_HEADERS([fcntl.h limits.h stdlib.h string.h syslog.h unistd.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_CHECK_HEADER_STDBOOL
+AC_TYPE_SIZE_T
+AC_TYPE_SSIZE_T
+
+# Checks for library functions.
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+AC_CHECK_FUNCS([atexit memmove mkdir realpath rmdir stpcpy strrchr strtoul])
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT