# Makefile.am
#
-# $Id$
-#
# Wireshark - Network traffic analyzer
# By Gerald Combs <gerald@wireshark.org>
# Copyright 2001 Gerald Combs
#
-#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
-#
+#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
-if USING_GCC
-AM_CFLAGS = -Werror
-endif
-
-noinst_LTLIBRARIES = libdfilter.la
-
-CLEANFILES = \
- libdfilter.a \
- libdfilter.la \
- *~
-
-DISTCLEANFILES = \
- grammar.out \
- grammar.c \
- grammar.h
+include $(top_srcdir)/Makefile.am.inc
-MAINTAINERCLEANFILES = \
- Makefile.in \
- grammar.c \
- grammar.h \
- grammar.out \
- scanner.c
+AM_CPPFLAGS = $(INCLUDEDIRS) -I$(top_srcdir)/epan -I$(lemon_srcdir) \
+ $(WS_CPPFLAGS) $(GLIB_CFLAGS)
-INCLUDES = -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/$(LEMON)
+noinst_LTLIBRARIES = libdfilter.la
-libdfilter_la_SOURCES = \
+# C source files that are part of the display filter source; this includes only
+# .c files, not YACC or Lex or... files (as Makefile.nmake maps this list
+# into a list of object files by replacing ".c" with ".obj") or files
+# generated from YACC or Lex files (as Automake doesn't want them in
+# _SOURCES variables).
+NONGENERATED_C_FILES = \
dfilter.c \
- dfilter.h \
- dfilter-int.h \
- dfilter-macro.h \
- dfilter-macro.c \
- dfunctions.c \
- dfunctions.h \
+ dfilter-macro.c \
+ dfunctions.c \
dfvm.c \
- dfvm.h \
drange.c \
- drange.h \
gencode.c \
- gencode.h \
- glib-util.c \
- glib-util.h \
- grammar.c \
- grammar.h \
- scanner.c \
semcheck.c \
- semcheck.h \
sttype-function.c \
- sttype-function.h \
sttype-integer.c \
sttype-pointer.c \
sttype-range.c \
- sttype-range.h \
+ sttype-set.c \
sttype-string.c \
sttype-test.c \
+ syntax-tree.c
+
+# Header files that are not generated from other files
+NONGENERATED_HEADERS_PRIVATE = \
+ dfilter-macro.h \
+ dfilter-int.h \
+ dfunctions.h \
+ dfvm.h \
+ gencode.h \
+ semcheck.h \
+ sttype-function.h \
+ sttype-range.h \
+ sttype-set.h \
sttype-test.h \
- syntax-tree.c \
syntax-tree.h
-EXTRA_DIST = \
+NONGENERATED_HEADERS_PUBLIC = \
+ dfilter.h \
+ drange.h
+
+# Files that generate compileable files
+GENERATOR_FILES = \
grammar.lemon \
- scanner.l \
- Makefile.nmake
+ scanner.l
-scanner.c : scanner.l
- @if [ ! -x "$(LEX)" ]; then \
- echo "Neither lex nor flex was found"; \
- exit 1; \
- fi
- $(LEX) -Pdf_ -oscanner.c $(srcdir)/scanner.l
+# The C source files they generate and that we want in the distribution
+GENERATED_C_FILES = \
+ scanner.c
-scanner.o : scanner.c grammar.h
+# The C source files they generate and that we don't want in the distribution
+NODIST_GENERATED_C_FILES = \
+ grammar.c
-LEMON=../../tools/lemon
+# The header files that they generate and that we want in the distribution
+GENERATED_HEADER_FILES = \
+ scanner_lex.h
-grammar.h : grammar.c
-grammar.c : grammar.lemon $(LEMON)/lemon$(EXEEXT)
- $(LEMON)/lemon$(EXEEXT) t=$(srcdir)/$(LEMON)/lempar.c $(srcdir)/grammar.lemon || \
+# The header files that they generate and that we don't want in the distribution
+NODIST_GENERATED_HEADER_FILES = \
+ grammar.h
+
+# All the generated files we want in the distribution.
+GENERATED_FILES = \
+ $(GENERATED_C_FILES) \
+ $(GENERATED_HEADER_FILES)
+
+# All the generated files we don't want in the distribution.
+NODIST_GENERATED_FILES = \
+ $(NODIST_GENERATED_C_FILES) \
+ $(NODIST_GENERATED_HEADER_FILES)
+
+subpkgincludedir = $(pkgincludedir)/epan/dfilter
+
+subpkginclude_HEADERS = $(NONGENERATED_HEADERS_PUBLIC)
+
+libdfilter_la_SOURCES = \
+ $(NONGENERATED_C_FILES) \
+ $(NONGENERATED_HEADERS_PRIVATE) \
+ $(GENERATED_C_FILES) \
+ $(GENERATED_HEADER_FILES)
+
+nodist_libdfilter_la_SOURCES = \
+ $(NODIST_GENERATED_C_FILES) \
+ $(NODIST_GENERATED_HEADER_FILES)
+
+EXTRA_DIST = \
+ .editorconfig \
+ $(GENERATOR_FILES) \
+ CMakeLists.txt
+
+DISTCLEANFILES = \
+ grammar.out \
+ $(NODIST_GENERATED_FILES)
+
+MAINTAINERCLEANFILES = \
+ $(GENERATED_FILES)
+
+BUILT_SOURCES = $(GENERATED_HEADER_FILES) $(NODIST_GENERATED_HEADER_FILES)
+
+scanner_lex.h : scanner.c
+
+grammar.h : grammar.c
+grammar.c : $(LEMON) $(lemon_srcdir)/lempar.c $(srcdir)/grammar.lemon
+ $(AM_V_LEMON)$(LEMON) T=$(lemon_srcdir)/lempar.c $(srcdir)/grammar.lemon || \
(rm -f grammar.c grammar.h ; false)
+
+checkapi:
+ $(PERL) $(top_srcdir)/tools/checkAPIs.pl -g termoutput -build \
+ -sourcedir=$(srcdir) $(NONGENERATED_C_FILES)