summaryrefslogtreecommitdiff
path: root/src/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile.am')
-rw-r--r--src/Makefile.am95
1 files changed, 90 insertions, 5 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index ed1df72..d6acefc 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -7,13 +7,93 @@ AM_CFLAGS = \
-fstack-protector \
-Wformat
+
+# XXX: magic option that will remove all unused symbols
+# (defined by platform-generic.c).
+if PROCENV_PLATFORM_DARWIN
+AM_CFLAGS += -flto
+else
+AM_CFLAGS += -fdata-sections -ffunction-sections
+endif
+
+# keep it tight
+AM_CFLAGS += -Werror
+
bin_PROGRAMS = procenv
+
procenv_SOURCES = \
procenv.c procenv.h \
- pr_list.c pr_list.h
+ pr_list.c pr_list.h \
+ pstring.c pstring.h \
+ string-util.c string-util.h \
+ output.c output.h \
+ util.c util.h \
+ types.h \
+ messages.h \
+ platform.h platform-headers.h \
+ platform/platform-generic.c platform/platform-generic.h
+
+# XXX: unused symbol removal magic - part 2
+if PROCENV_PLATFORM_DARWIN
+procenv_LDFLAGS = -flto
+else
+procenv_LDFLAGS = -Wl,--gc-sections
+endif
+
+# should really do this in configure.ac
+if PROCENV_PLATFORM_MINIX
+procenv_LDADD = -lc
+endif
-procenv_LDADD = -lrt
procenv_CPPFLAGS =
+procenv_CPPFLAGS += -I $(srcdir) -I $(srcdir)/platform
+
+if PROCENV_PLATFORM_DARWIN
+procenv_SOURCES += platform/darwin/platform.c platform/darwin/platform-darwin.h
+procenv_CPPFLAGS += -I $(srcdir)/platform/darwin -D PROCENV_PLATFORM_DARWIN
+endif
+
+if PROCENV_PLATFORM_LINUX
+procenv_SOURCES += platform/linux/platform.c platform/linux/platform-linux.h
+procenv_CPPFLAGS += -I $(srcdir)/platform/linux -D PROCENV_PLATFORM_LINUX
+endif
+
+if PROCENV_PLATFORM_MINIX
+procenv_SOURCES += platform/minix/platform.c platform/minix/platform-minix.h
+procenv_CPPFLAGS += \
+ -I $(srcdir)/platform/minix -D PROCENV_PLATFORM_MINIX
+endif
+
+if PROCENV_PLATFORM_HURD
+procenv_SOURCES += platform/hurd/platform.c platform/hurd/platform-hurd.h
+procenv_CPPFLAGS += -I $(srcdir)/platform/hurd -D PROCENV_PLATFORM_HURD
+endif
+
+if PROCENV_PLATFORM_FREEBSD
+procenv_SOURCES += platform/freebsd/platform.c platform/freebsd/platform-freebsd.h
+procenv_CPPFLAGS += -I $(srcdir)/platform/freebsd \
+ -D PROCENV_PLATFORM_FREEBSD \
+ -D PROCENV_PLATFORM_BSD
+endif
+
+if PROCENV_PLATFORM_NETBSD
+procenv_SOURCES += platform/netbsd/platform.c platform/netbsd/platform-netbsd.h
+procenv_CPPFLAGS += -I $(srcdir)/platform/netbsd \
+ -D PROCENV_PLATFORM_NETBSD \
+ -D PROCENV_PLATFORM_BSD
+endif
+
+if PROCENV_PLATFORM_OPENBSD
+procenv_SOURCES += platform/openbsd/platform.c platform/openbsd/platform-openbsd.h
+procenv_CPPFLAGS += -I $(srcdir)/platform/openbsd \
+ -D PROCENV_PLATFORM_OPENBSD \
+ -D PROCENV_PLATFORM_BSD
+endif
+
+if PROCENV_PLATFORM_GENERIC
+procenv_SOURCES += platform/unknown/platform.c platform/unknown/platform-unknown.h
+procenv_CPPFLAGS += -I $(srcdir)/platform/unknown -D PROCENV_PLATFORM_GENERIC
+endif
if HAVE_SELINUX
procenv_CPPFLAGS += -DHAVE_SELINUX
@@ -27,10 +107,14 @@ if ENABLE_TESTS
TESTS =
CLEANFILES =
+TESTS += tests/show_machine_details
+
check_all_args: tests/check_all_args.in
sed -e 's|[@]builddir[@]|$(top_builddir)/$(subdir)|g' \
-e 's|[@]man_path[@]|$(top_srcdir)/man/procenv.1|g' \
-e 's|[@]package_url[@]|$(PACKAGE_URL)|g' \
+ -e 's|[@]package_url[@]|$(PACKAGE_URL)|g' \
+ -e 's|[@]procenv_platform[@]|$(procenv_platform)|g' \
$< > $@
chmod +x $@
@@ -44,16 +128,17 @@ check_pr_list_LDADD = @CHECK_LIBS@ pr_list.o
endif
+TESTS += check_all_args
+
# Run built binary to ensure we can display all values
TESTS += procenv
-TESTS += check_all_args
-
CLEANFILES += check_all_args
endif
EXTRA_DIST = \
tests/show_compiler_details \
+ tests/show_machine_details \
tests/check_all_args.in \
- tests/check_pr_list.c
+ tests/check_pr_list.c