[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnucap-devel] New gnucap development snapshot
From: |
Dan McMahill |
Subject: |
Re: [Gnucap-devel] New gnucap development snapshot |
Date: |
Tue, 12 Sep 2006 05:14:31 -0400 |
User-agent: |
Thunderbird 1.5.0.5 (Windows/20060719) |
al davis wrote:
Most of this is really to Dan, but here it is for all to see..
On Wednesday 30 August 2006 19:39, al davis wrote:
2. Configuration changes. Most of the problems with autoconf
based installation should be fixed. A few minor issues still
remain, but should not be noticeable to most users.
This package was built with the old system. "make distcheck"
under autoconf still doesn't do the right thing.
The old build system does run some checks, now including to make
sure the autoconf generated files are up to date.
In the autoconf version, "make distcheck" fails if the modelgen
generated files are not present. So, if I "make" then "make
distcheck" it builds a file, including the generated files. If
I do "make distclean" then "make distcheck" it fails.
The files included here are equivalent to what you get
after "make distclean", without the modelgen generated files.
This is the correct set of files for the distribution.
I fixed (I hope) the way modelgen is called. What I did was add an
explicit dependency for c_getckt.o on the modelgen output. Now modelgen
is called just before its output is needed. Also the generated files
are not included in the distribution which I agree is the right thing here.
4. The "man/html" directory is not included, due to problems
with autoconf.
This is strictly an autoconf issue. The whole directory is
generated, and will not be if you don't ask for the html
manual. Autoconf requires some files which must be manually
maintained, or the "make html" needs to generate them,
even "Makefile.am", and therefore "Makefile.in".
5. If you use the old build system, you can build "info" and
plain text versions of the manual. Use "configure.old" to
use the old build system.
I put targets for these into Makefile.am but they are not automatically
called.
I just didn't migrate the changes over. The "info" directory
has the same issues as the "html" directory. These use hevea
to make them.
We could pretty easily add those directories to what goes in the
distfile and to what gets installed (I wouldn't do the latter without
the former since many, or most, users don't have hevea) if that is
desired. I'm not sure how to get around having to do 'make' before
'make dist' or 'make distcheck' though when wildcards are used to get
the list of generated files. I can ask on the automake mailing list if
you're interested.
Also ...
I decided not to include gnucap-man.dvi. Gnu policy says to
include info, nothing else, but I disagree. "dvi" is a ready
to print version. It seems to me that "html" accomplishes all
that "info" was supposed to do, but is more general.
Regarding the issue under #2 ... I insist that the modelgen
generated files should not be included. Any user can build
modelgen, and make those files. The process of building the
program should put them with the .o files. This is done
correctly with either system.
fixed.
One point seems a little strange is when the modelgen generated
files are made. In the old system, they are deferred until
needed. With the autoconf system, they are all built before
any .cc files are compiled. This doesn't really matter, except
that I don't understand why they should be different.
fixed.
Let me know what else you need addressed.
-Dan
Only in gnucap-2006-08-30: autom4te.cache
diff -x Makefile.in -x configure -U2 -r gnucap-2006-08-30.orig/config.h.in
gnucap-2006-08-30/config.h.in
--- gnucap-2006-08-30.orig/config.h.in 2006-06-06 02:45:42.000000000 -0400
+++ gnucap-2006-08-30/config.h.in 2006-09-12 04:54:17.000000000 -0400
@@ -1,10 +1,4 @@
/* config.h.in. Generated from configure.ac by autoheader. */
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
/* Define to 1 if you have the `readline' library (-lreadline). */
#undef HAVE_LIBREADLINE
@@ -13,28 +7,4 @@
#undef HAVE_LIBTERMCAP
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
/* Name of package */
#undef PACKAGE
@@ -55,7 +25,4 @@
#undef PACKAGE_VERSION
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
/* Version number of package */
#undef VERSION
Only in gnucap-2006-08-30: config.h.in~
diff -x Makefile.in -x configure -U2 -r gnucap-2006-08-30.orig/configure.ac
gnucap-2006-08-30/configure.ac
--- gnucap-2006-08-30.orig/configure.ac 2006-08-30 16:51:49.000000000 -0400
+++ gnucap-2006-08-30/configure.ac 2006-09-12 04:54:12.000000000 -0400
@@ -72,5 +72,6 @@
AM_CONDITIONAL(MISSING_HEVEA, test x$HEVEA = xnotfound -o x$HACHA = xnotfound)
AC_PATH_PROG(LATEX, latex, notfound)
-AM_CONDITIONAL(MISSING_LATEX, test x$LATEX = xnotfound)
+AC_PATH_PROG(MAKEINDEX, makeindex, notfound)
+AM_CONDITIONAL(MISSING_LATEX, test x$LATEX = xnotfound -o x$MAKEINDEX =
xnotfound)
# Checks for libraries.
@@ -82,5 +83,5 @@
# Checks for header files.
-AC_CHECK_HEADERS([fcntl.h unistd.h])
+#AC_CHECK_HEADERS([fcntl.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
diff -x Makefile.in -x configure -U2 -r gnucap-2006-08-30.orig/man/Makefile.am
gnucap-2006-08-30/man/Makefile.am
--- gnucap-2006-08-30.orig/man/Makefile.am 2006-08-30 17:17:58.000000000
-0400
+++ gnucap-2006-08-30/man/Makefile.am 2006-09-12 05:00:18.000000000 -0400
@@ -7,5 +7,5 @@
dist_pkgmanual_DATA= gnucap-man.pdf
-EXTRA_DIST= ${TEXSRCS} Makefile.template configure.old gnucap-man.pdf
+EXTRA_DIST= ${TEXSRCS} Makefile.template configure.old gnucap-man.dvi
TEXSRCS= \
@@ -15,16 +15,15 @@
MOSTLYCLEANFILES = \
-gnucap-man.aux gnucap-man.idx gnucap-man.log gnucap-man.out \
-gnucap-man.toc gnucap-man.haux gnucap-man.hidx gnucap-man.hind \
-gnucap-man.htoc gnucap-man.ilg gnucap-man.ind
+ gnucap-man.aux gnucap-man.idx gnucap-man.log gnucap-man.out \
+ gnucap-man.toc gnucap-man.haux gnucap-man.hidx gnucap-man.hind \
+ gnucap-man.htoc gnucap-man.ilg gnucap-man.ind
CLEANFILES = $(MOSTLYCLEANFILES) \
-gnucap-man.dvi gnucap-man.txt info html
+ gnucap-man.dvi gnucap-man.txt info html
-DISTCLEANFILES = $(CLEANFILES) \
-Makefile
+DISTCLEANFILES = $(CLEANFILES)
MAINTAINERCLEANFILES = $(DISTCLEANFILES) \
-gnucap-man.pdf
+ gnucap-man.pdf
TEXDIRS= Addmodel Behavior Circuit Commands Tech
@@ -35,5 +34,5 @@
DVIPDFM= @DVIPDFM@
HACHA= @HACHA@
-HEVEA= @HEVEA@
+HEVEA= @HEVEA@ -I $(srcdir)
LATEX= @LATEX@
@@ -59,18 +58,44 @@
env TEXINPUTS=$(srcdir): ${LATEX} -interaction=nonstopmode \
$(srcdir)/gnucap-man |grep -v hyperref |grep .
- makeindex gnucap-man
+ ${MAKEINDEX} gnucap-man
env TEXINPUTS=$(srcdir): ${LATEX} -interaction=nonstopmode \
$(srcdir)/gnucap-man |grep -v hyperref |grep .
endif
+# html version of the manual
html/index.html: $(TEXFILES)
if MISSING_HEVEA
+ @echo "WARNING: Either hevea or hacha was not found on your system but"
+ @echo " $@ is out of date and needs to be"
+ @echo " rebuilt from the LaTeX .tex files. Changes to"
+ @echo " the .tex files will be ignored."
+else
+ -mkdir html
${HEVEA} -fix -o html/gnucap-man $(srcdir)/gnucap-man.tex
cd html; ${HACHA} -nolinks gnucap-man; rm -f gnucap-man *.haux *.htoc
+endif
+
+
+# info version of the manual
+info/gnucap-man.info: $(TEXFILES)
+if MISSING_HEVEA
+ @echo "WARNING: Either hevea or hacha was not found on your system but"
+ @echo " $@ is out of date and needs to be"
+ @echo " rebuilt from the LaTeX .tex files. Changes to"
+ @echo " the .tex files will be ignored."
else
+ -mkdir info
+ ${HEVEA} -fix -info -o $@ $(srcdir)/gnucap-man.tex
+endif
+
+# plain text
+gnucap-man.txt: $(TEXFILES)
+if MISSING_HEVEA
@echo "WARNING: Either hevea or hacha was not found on your system but"
@echo " $@ is out of date and needs to be"
@echo " rebuilt from the LaTeX .tex files. Changes to"
@echo " the .tex files will be ignored."
+else
+ ${HEVEA} -fix -text -o $@ $(srcdir)/gnucap-man.tex
endif
diff -x Makefile.in -x configure -U2 -r gnucap-2006-08-30.orig/src/Makefile.am
gnucap-2006-08-30/src/Makefile.am
--- gnucap-2006-08-30.orig/src/Makefile.am 2006-08-28 02:15:43.000000000
-0400
+++ gnucap-2006-08-30/src/Makefile.am 2006-09-12 04:47:20.000000000 -0400
@@ -26,5 +26,9 @@
bin_PROGRAMS= gnucap
-gnucap_SOURCES= \
+# globals.cc should be listed first as it must be linked before
+# any files which have a static object with a constructor that
+# relates to the netlist.
+
+gnucap_SOURCES= globals.cc \
ap_construct.cc ap_convert.cc ap_error.cc ap_get.cc ap_match.cc ap.h \
m_cpoly.h m_divdiff.h m_interp.h m_matrix.h m_spline.h ap_skip.cc bm.cc \
@@ -46,5 +50,5 @@
findbr.cc io.cc io_contr.cc io_error.cc io_findf.cc io_getln.cc io_out.cc \
l_compar.h l_denoise.h l_jmpbuf.h l_lib.h l_stlextra.h l_timer.h l_ftos.cc \
- l_timer.cc l_trim.cc io_xopen.cc l_pmatch.cc l_wmatch.cc md.cc globals.cc \
+ l_timer.cc l_trim.cc io_xopen.cc l_pmatch.cc l_wmatch.cc md.cc \
u_opt1.cc u_opt2.cc md.h io_.h io_error.h io_trace.h u_opt.h mode.h \
constant.h declare.h m_fft.cc m_spline.cc plot.cc s_ac.cc \
@@ -54,8 +58,13 @@
s_tr_set.cc s_tr_swp.cc u_cardst.h u_limit.h m_wave.h u_nodemap.cc u_sdp.cc \
u_prblst.cc u_probe.cc u_xprobe.cc u_nodemap.h u_sdp.h u_prblst.h \
- u_probe.h u_xprobe.h u_parameter.h u_parameter.cc \
- ${BUILT_SOURCES}
+ u_probe.h u_xprobe.h u_parameter.h u_parameter.cc
-BUILT_SOURCES= ${MODELS:.model=.cc} ${MODELS:.model=.h}
+## The modelgen built sources go here because we don't want them to
+## go in the distfile (hence the nodist_).
+nodist_gnucap_SOURCES= ${MODELSRCS}
+
+## This is needed because c_getckt.o depends on the headers generated by
+## modelgen.
+c_getckt.${OBJEXT}: ${MODELSRCS}
## The .model files for modelgen
@@ -72,9 +81,11 @@
Makefile.template configure.old test_readline.cc
+## The modelgen generated files
+MODELSRCS= ${MODELS:.model=.cc} ${MODELS:.model=.h}
### Clean out the modelgen generated files
-DISTCLEANFILES= ${MODELS:.model=.cc} ${MODELS:.model=.h}
+CLEANFILES= ${MODELSRCS}
-## Suffix rules for modelgen
+## Suffix rules for modelgen.
##
@@ -82,5 +93,5 @@
MODELGEN= @MODELGEN@
-%.cc : %.model ${MODELGEN}
+%.cc : %.model %.h ${MODELGEN}
${MODELGEN} -cc $<