X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=utilities%2Fgengetopt%2FMakefile.am;fp=utilities%2Fgengetopt%2FMakefile.am;h=091008f4b150d8ca13140364da6a785242760b6e;hb=79381bc54b9e0c85156460daa211fe5ac83da0a7;hp=0000000000000000000000000000000000000000;hpb=4454c06e212fb6af58d206f2d6f9b76778858967;p=clitk.git diff --git a/utilities/gengetopt/Makefile.am b/utilities/gengetopt/Makefile.am new file mode 100644 index 0000000..091008f --- /dev/null +++ b/utilities/gengetopt/Makefile.am @@ -0,0 +1,115 @@ +# Copyright (C) 1999-2009 Free Software Foundation, Inc. +# +# This file is part of GNU gengetopt +# +# GNU gengetopt 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 3, or (at your option) +# any later version. +# +# GNU gengetopt 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 gengetopt; see the file COPYING. If not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +SUBDIRS = includes skels tests + +#INCLUDES = -I@top_srcdir@/src/skels + +SUFFIXES = .text .c .ggo + +.text.o: + $(TXTC) $< + +bin_PROGRAMS = gengetopt + +noinst_LTLIBRARIES = libgengetopt.la + +libgengetopt_la_SOURCES = parser.cc scanner.cc \ +globals.cpp \ +argsdef.c cmdline.ggo gm.cc \ +yyerror.cc gm_utils.cpp fileutils.cpp acceptedvalues.cpp ggos.cpp + +gengetopt_SOURCES = gengetopt.cc + +scanner.cc: $(srcdir)/scanner.ll + $(LEX) $(LFLAGS) -o $(srcdir)/scanner.cc $(srcdir)/scanner.ll + +parser.cc: $(srcdir)/parser.yy + $(YACC) -o $(srcdir)/parser.cc $(srcdir)/parser.yy --defines=$(srcdir)/parser.h + +#gengetopt_LDADD = @LIBOBJS@ @LEXLIB@ skels/libgen.a + +# these are for gnulib +AM_CPPFLAGS = -I$(top_srcdir)/gl -I$(top_builddir)/gl + +libgengetopt_la_LIBADD = $(top_builddir)/gl/libgnu.la \ + @LTLIBOBJS@ \ + skels/libgen.la + +LDADD = $(top_builddir)/src/libgengetopt.la + +EXTRA_DIST = parser.h argsdef.h gengetopt.h ggos.h gm.h gnugetopt.h \ +cmdline.c cmdline.h my_sstream.h my_string.h my_map.h \ +global_opts.h \ +ggo_options.h \ +groups.h \ +parser.yy scanner.ll \ +globals.h \ +$(pkgdata_DATA) + +# version of gengetopt linked to the ElectricFence library +# don't use it anymore: use valgrind +#EXTRA_PROGRAMS = gengetopt-efence +#gengetopt_efence_SOURCES = $(gengetopt_SOURCES) +#gengetopt_efence_LDADD = -lefence $(gengetopt_LDADD) + +PROGNAME = $(top_builddir)/src/gengetopt$(EXEEXT) + +# to have flex generate a case insensitive scanner +AM_LFLAGS = -i + +# it may happen, usually if the sources have been downloaded from CVS +# repository, that cmdline.ggo is more recent than cmdline.c, but +# cmdline.c cannot be re-generated, even because gengetopt has +# to be built first. For instance if you only change spaces in cmdline.ggo +# cmdline.c will not be different, and thus it is not updated in the CVS +# repository; then when you make a checkout on another place, make +# would try to build cmdline.c, but to do this it would need gengetopt +# which is not built yet; so we simply touch cmdline.c (and this is safe) + +.ggo.c: + if test -f $(PROGNAME); then \ + $(PROGNAME) --input=$< --output-dir=$(srcdir) ; \ + else touch $(srcdir)/$@ ; fi + +cmdline.h: cmdline.c + +BUILT_SOURCES = cmdline.h cmdline.c parser.cc scanner.cc + +# automatically generate gengetopt_strdup() from the replacement function +# strdup(). +# gengetopt_strdup.text: strdup.c +# echo "/* gengetopt_strdup(): automatically generated from strdup.c. */" > $@ +# cat strdup.c | sed -e 's/^strdup (/gengetopt_&/' \ +# -e 's/^char \* *$$/&/' \ +# -e '/^#include.*$$/D' -e '/^$$/D' >> $@ + +# we distribute these files because who uses gengetopt might need them +# these are installed in $(prefix)/share/gengetopt +pkgdata_DATA = gnugetopt.h getopt.c getopt1.c + +# yywrap.c is added only if it is not found on lex (flex) lib, and will be +# added automatically by automake + +# automake (maybe due to a bug) doesn't added these files well, +# so we explicitely declare them +MAINTAINERCLEANFILES = scanner.cc parser.h parser.cc + +noinst_HEADERS = acceptedvalues.h errorcodes.h fileutils.h \ + gm_utils.h yyerror.h +