1## Makefile.am 2## 3## Copyright (C) 2010,2018-2020 Free Software Foundation, Inc. 4## 5## This file is part of LibreDWG. 6## 7## LibreDWG is free software: you can redistribute it and/or modify it 8## under the terms of the GNU General Public License as published by 9## the Free Software Foundation, either version 3 of the License, or 10## (at your option) any later version. 11## 12## LibreDWG is distributed in the hope that it will be useful, 13## but WITHOUT ANY WARRANTY; without even the implied warranty 14## of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 15## See the GNU General Public License for more details. 16## 17## You should have received a copy of the GNU General Public License 18## along with this program. If not, see <http://www.gnu.org/licenses/>. 19 20WARN_CFLAGS = @WARN_CFLAGS@ 21AM_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/src $(WARN_CFLAGS) 22LDADD = $(top_builddir)/src/libredwg.la -lm 23 24bin_PROGRAMS = dwgread 25noinst_PROGRAMS = 26dist_man1_MANS = $(srcdir)/dwgread.1 27if !DISABLE_DXF 28bin_PROGRAMS += dwgbmp dwg2dxf dwg2SVG dwglayers dwggrep 29dist_bin_SCRIPTS = dwgfilter 30dist_man1_MANS += $(srcdir)/dwgbmp.1 $(srcdir)/dwg2dxf.1 \ 31 $(srcdir)/dwg2SVG.1 $(srcdir)/dwglayers.1 \ 32 $(srcdir)/dwggrep.1 $(srcdir)/dwgfilter.1 33endif 34 35if !DISABLE_DXF 36if HAVE_LIBPS 37bin_PROGRAMS += dwg2ps 38dist_man1_MANS += $(srcdir)/dwg2ps.1 39dwg2ps_SOURCES = dwg2ps.c geom.c 40dwg2ps_LDADD = $(LDADD) -lps 41endif 42endif 43 44dwgread_SOURCES = dwgread.c 45dwgbmp_SOURCES = dwgbmp.c 46dwg2dxf_SOURCES = dwg2dxf.c 47dwglayers_SOURCES = dwglayers.c 48dwg2SVG_SOURCES = dwg2SVG.c escape.c geom.c 49dwggrep_SOURCES = dwggrep.c 50dwggrep_CFLAGS = $(AM_CFLAGS) $(CFLAGS) $(PCRE2_CFLAGS) 51dwggrep_LDADD = $(LDADD) $(PCRE2_LIBS) 52 53if USE_WRITE 54bin_PROGRAMS += dwgrewrite 55dist_man1_MANS += $(srcdir)/dwgrewrite.1 56dwgrewrite_SOURCES = dwgrewrite.c 57if !DISABLE_DXF 58bin_PROGRAMS += dxf2dwg dwgwrite dxfwrite 59dist_man1_MANS += $(srcdir)/dxf2dwg.1 $(srcdir)/dwgwrite.1 $(srcdir)/dxfwrite.1 60dxf2dwg_SOURCES = dxf2dwg.c 61dwgwrite_SOURCES = dwgwrite.c 62dxfwrite_SOURCES = dxfwrite.c 63endif 64endif 65 66if HAVE_WINE 67TESTS_ENVIRONMENT = \ 68 PROGS='$(bin_PROGRAMS)' \ 69 DATADIR='$(top_srcdir)/test/test-data' \ 70 TESTPROG='wine' 71else 72if DISABLE_DXF 73TESTS_ENVIRONMENT = \ 74 PROGS='$(bin_PROGRAMS)' \ 75 DATADIR='$(top_srcdir)/test/test-data' \ 76 TESTPROG='' 77else 78TESTS_ENVIRONMENT = \ 79 PROGS='$(bin_PROGRAMS)' \ 80 DATADIR='$(top_srcdir)/test/test-data' \ 81 TESTPROG='' 82endif 83endif 84 85TESTS = alive.test 86if !DISABLE_DXF 87TESTS += dxf.test 88if !DISABLE_JSON 89if HAVE_JQ 90TESTS += json.test 91endif 92endif 93if HAVE_JING 94TESTS += svg.test 95endif 96endif 97 98EXTRA_DIST = suffix.inc escape.h geom.h common.inc $(TESTS) cmp_dxf.pl 99CLEANFILES = {example_,sample_}*.{bmp,ps,svg,dxf,log} 100if USE_WRITE 101CLEANFILES += {example_,sample_}*rewrite.{dwg,log} 102CLEANFILES += {example_,sample_}*.dwg 103CLEANFILES += example_*.{log1,log2} 104endif 105MAINTAINERCLEANFILES = *_flymake.[ch] *~ *.i *.ii *.log 106DISTCLEANFILES = core alive.test dxf.test json.test svg.test 107 108.PHONY: man dsymutil clean-dsymutil check-syntax 109 110.c.i: 111 $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ 112 $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -E -o $@ $< 113 114.c.ii: # no linemarkers 115 $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ 116 $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -E -P -o $@ $< 117 118man: $(dist_man1_MANS) 119 120if !HAVE_MINGW_CROSS 121# Note: These rules do not work cross-compiled 122regen-man: $(bin_PROGRAMS) $(noinst_PROGRAMS) 123 -for p in $(dist_man1_MANS); do \ 124 base=`basename $$p .1`; \ 125 help2man -p $(PACKAGE_NAME) -o $$p ./$$base$(EXEEXT); done 126endif 127 128#.c.1: $(bin_PROGRAMS) $(noinst_PROGRAMS) 129# help2man -p LibreDWG -o $@ $(*F) || true 130 131dsymutil: 132 for e in $(bin_PROGRAMS) $(noinst_PROGRAMS); do dsymutil $$e; done 133clean-dsymutil: 134 for e in $(bin_PROGRAMS) $(noinst_PROGRAMS); do rm -rf $$e.dSYM; done 135 136# emacs flymake-mode 137check-syntax: 138 test -n "$(CHK_SOURCES)" && \ 139 $(COMPILE) -o /dev/null -S $(CHK_SOURCES) 140 141if ENABLE_GCOV 142AM_CFLAGS += @GCOV_CFLAGS@ 143LIBS += @GCOV_LIBS@ 144gcov: $(CHECK) 145 -test -f gcov.log && rm gcov.log 146 $(GCOV) -lp *.gcno | tee -a $(builddir)/gcov.log 147 148CLEANFILES += *.gcov *.gcno *.gcda gcov.log 149endif 150 151#TODO: alive.test => runtests with VALGRIND support 152@VALGRIND_CHECK_RULES@ 153VALGRIND_SUPPRESSIONS_FILE = @VALGRIND_SUPPRESSIONS_FILE@ 154VALGRIND_SUPPRESSIONS = @VALGRIND_SUPPRESSIONS@ 155