| ## Process this file with automake to produce Makefile.in |
| |
| # File lists |
| common_headers = common.h prototypes.h version.h |
| common_sources = tls.c str.c file.c client.c log.c options.c protocol.c |
| common_sources += network.c resolver.c ssl.c ctx.c verify.c sthreads.c |
| common_sources += fd.c dhparam.c cron.c stunnel.c |
| unix_sources = pty.c libwrap.c ui_unix.c |
| shared_sources = env.c |
| win32_gui_sources = ui_win_gui.c resources.h resources.rc |
| win32_gui_sources += stunnel.ico active.ico error.ico idle.ico |
| win32_cli_sources = ui_win_cli.c |
| |
| # Unix executables |
| bin_PROGRAMS = stunnel |
| stunnel_SOURCES = $(common_headers) $(common_sources) $(unix_sources) |
| bin_SCRIPTS = stunnel3 |
| |
| EXTRA_DIST = stunnel3.in |
| CLEANFILES = stunnel3 |
| |
| # Unix shared library |
| pkglib_LTLIBRARIES = libstunnel.la |
| libstunnel_la_SOURCES = $(shared_sources) |
| libstunnel_la_LDFLAGS = -avoid-version |
| |
| # Red Hat "by design" bug #82369 |
| stunnel_CPPFLAGS = -I/usr/kerberos/include |
| |
| # Additional preprocesor definitions |
| stunnel_CPPFLAGS += -I$(SSLDIR)/include |
| stunnel_CPPFLAGS += -DLIBDIR='"$(pkglibdir)"' |
| stunnel_CPPFLAGS += -DCONFDIR='"$(sysconfdir)/stunnel"' |
| |
| # Generate a new set of DH parameters for each version |
| dhparam.c: version.h |
| echo '#include "common.h"' >dhparam.c |
| echo '#ifndef OPENSSL_NO_DH' >>dhparam.c |
| echo '#define DN_new DH_new' >>dhparam.c |
| openssl dhparam -noout -C 2048 >>dhparam.c |
| echo '#endif /* OPENSSL_NO_DH */' >>dhparam.c |
| |
| # SSL library |
| stunnel_LDFLAGS = -L$(SSLDIR)/lib64 -L$(SSLDIR)/lib -lssl -lcrypto |
| |
| # Win32 executables |
| |
| if AUTHOR_TESTS |
| # Just check if the programs can be built, don't perform any actual tests |
| check_PROGRAMS = stunnel.exe tstunnel.exe |
| endif |
| stunnel_exe_SOURCES = $(common_headers) $(common_sources) $(win32_gui_sources) |
| tstunnel_exe_SOURCES = $(common_headers) $(common_sources) $(win32_cli_sources) |
| |
| # Remaining files to be included |
| # EXTRA_PROGRAMS = stunnel.exe tstunnel.exe |
| # EXTRA_DIST += $(win32_gui_sources) $(win32_cli_sources) |
| EXTRA_DIST += make.bat makece.bat makew32.bat |
| EXTRA_DIST += mingw.mak evc.mak vc.mak os2.mak |
| |
| # win32_ssl_dir = /usr/src/openssl-0.9.8u-fips |
| # win32_cppflags = -I$(win32_ssl_dir)/inc32 |
| win32_ssl_dir = /usr/src/openssl-1.0.2d-i686 |
| win32_cppflags = -I$(win32_ssl_dir)/include |
| win32_cflags = -mthreads -fstack-protector -O2 |
| win32_cflags += -Wall -Wextra -Wpedantic -Wformat=2 -Wconversion -Wno-long-long |
| win32_cflags += -D_FORTIFY_SOURCE=2 -DUNICODE -D_UNICODE |
| win32_ldflags = -mthreads -fstack-protector -s |
| |
| win32_common_libs = -lws2_32 |
| win32_ssl_libs = -L$(win32_ssl_dir) -lcrypto -lssl |
| win32_gui_libs = $(win32_common_libs) -lgdi32 -lpsapi $(win32_ssl_libs) |
| win32_cli_libs = $(win32_common_libs) $(win32_ssl_libs) |
| |
| win32_common_objs = tls.obj str.obj file.obj client.obj log.obj options.obj |
| win32_common_objs += protocol.obj network.obj resolver.obj ssl.obj ctx.obj |
| win32_common_objs += verify.obj sthreads.obj fd.obj dhparam.obj cron.obj |
| win32_common_objs += stunnel.obj |
| win32_gui_objs = ui_win_gui.obj resources.obj |
| win32_cli_objs = ui_win_cli.obj |
| |
| win32_prefix = i686-w64-mingw32- |
| win32_cc = $(win32_prefix)gcc |
| win32_windres = $(win32_prefix)windres |
| |
| MOSTLYCLEANFILES = $(win32_common_objs) $(win32_gui_objs) $(win32_cli_objs) |
| CLEANFILES += stunnel.exe tstunnel.exe |
| |
| # dist-hook: stunnel.exe tstunnel.exe |
| |
| # SUFFIXES = .c .rc .obj |
| |
| stunnel.exe: $(win32_common_objs) $(win32_gui_objs) |
| $(win32_cc) -mwindows $(win32_ldflags) -o stunnel.exe $(win32_common_objs) $(win32_gui_objs) $(win32_gui_libs) |
| |
| tstunnel.exe: $(win32_common_objs) $(win32_cli_objs) |
| $(win32_cc) $(win32_ldflags) -o tstunnel.exe $(win32_common_objs) $(win32_cli_objs) $(win32_cli_libs) |
| |
| %.obj: %.c $(common_headers) |
| $(win32_cc) -c $(win32_cppflags) $(win32_cflags) -o $@ $< |
| |
| resources.obj: resources.rc resources.h version.h |
| $(win32_windres) --include-dir $(srcdir) $< $@ |
| |
| edit = sed \ |
| -e 's|@bindir[@]|$(bindir)|g' |
| |
| stunnel3: Makefile |
| $(edit) '$(srcdir)/$@.in' >$@ |
| |
| stunnel3: $(srcdir)/stunnel3.in |