On Wed, 3 Oct 2012, Marcin Cieslak wrote: I guess my question on this one is - why do it differently for FBSD?
Why not define, perhaps in the 'cf's a #define BuildDtInfo NO or YES, and handle it like other flags... Default it to YES in Imake.tmpl maybe. Linux and the BSD's can declare it to NO in their cf's, and the rest can pick up their own mess :) Rather than add an 'ignore' keyword, for FreeBSD, just ifdef the problem away, where necc on all systems... Then the databases Imakefile (for packaging) does something like #if BuildDtInfo # define DTINFO_DEFINES = -DHAVE_DTINFO #endif Then later on, at the CppSourceFile(CDE-SHLIBS.udb,CDE-SHLIBS.src,$(UDB_CPP_UNDEF_LIST),) call, change to CppSourceFile(CDE-SHLIBS.udb,CDE-SHLIBS.src,$(UDB_CPP_UNDEF_LIST) $(DTINFO_DEFINES),) Then just ifdef the puppies out when the udb's are preprocessed, sort of like what you did. Also, we should use something other than using 'UDB_CPP_UNDEF_LIST' to add this HaveDtInfo. UDB_CPP_UNDEF_LIST has a specific purpose here - preventing cpp expansion of the platform keywords in the udb files (uxp, linux,freebsd, etc). It should only be used for that purpose. > - Add new CPP flag HAVE_DTINFO for > all architectures except FreeBSD > > - CDE-INFOLIB-LOC.src, CDE-LOC.src, CDE-MSG-LOC.src > CDE-SHLIBS.src have dtinfo related portions > excluded by #ifdef HAVE_DTINFO > > - Implement new file type "ignore" in the UDB > to allow the installer to skip some files. > > For example: > > some/source/file > { freebsd > type = "ignore" > } > { default > install_target = /some/target/file > mode = 555 > } > > For FreeBSD no entry about this file fill be > added (neither in -toDB nor -toLst output format) > > - ignore dtinfo related entries in the CDE-RUN.udb > and CDE-INFO.udb using the abovementioned feature > > Similar changes might be added to other platforms > that don't support dtinfo for now. > --- > cde/admin/IntegTools/dbTools/udbParseLib.awk | 19 ++++-- > cde/databases/CDE-INFO.udb | 96 ++++++++++++++++++++++++++++ > cde/databases/CDE-INFOLIB-LOC.src | 2 + > cde/databases/CDE-LOC.src | 4 ++ > cde/databases/CDE-MSG-LOC.src | 2 + > cde/databases/CDE-RUN.udb | 48 ++++++++++++++ > cde/databases/CDE-SHLIBS.src | 2 + > cde/databases/Imakefile | 13 +++- > 8 files changed, 179 insertions(+), 7 deletions(-) > > diff --git a/cde/admin/IntegTools/dbTools/udbParseLib.awk > b/cde/admin/IntegTools/dbTools/udbParseLib.awk > index d1399af..3a54027 100644 > --- a/cde/admin/IntegTools/dbTools/udbParseLib.awk > +++ b/cde/admin/IntegTools/dbTools/udbParseLib.awk > @@ -557,6 +557,8 @@ function fillRecord(rec) { > syntaxError("Invalid source: \"" src "\" for type: \"" > rec[TypDefault] "\"") > else if ( rec[TypDefault] == "file" || rec[TypDefault] == "control" ) > rec[SrcDefault] = src; > + else if ( rec[TypDefault] == "ignore" ) > + ; # silently ignore > else > syntaxError("Unrecognized type:\"" rec[TypDefault] "\"") > > @@ -577,10 +579,12 @@ function printDb(rec) { > } > # NumEntries should be one greater than the number of defaults > # read in. > - for ( i = 1; i< NumEntries; i++ ) { > - printf("%-40s %s %s\n",defOrder[i], ":",rec[defOrder[i]]) > - } > - print "#" > + if ( rec[TypDefault] != "ignore" ) { > + for ( i = 1; i< NumEntries; i++ ) { > + printf("%-40s %s %s\n",defOrder[i], > ":",rec[defOrder[i]]) > + } > + print "#" > + } > if ( DeBug > 0 ) Depth-- > } > > @@ -601,7 +605,8 @@ function printLst(rec) { > else > Source = SrcDefault > > - printf("%s %s %s %s %s %s %s %s %s\n", > + if ( rec[TypDefault] != "ignore" ) > + printf("%s %s %s %s %s %s %s %s %s\n", > rec[ DestDefault], > rec[ ModeDefault ], > rec[ Source ], > @@ -623,6 +628,10 @@ function printLst(rec) { > function printGather(rec) { > # print "Entering printRecord: " > > + > + if ( rec["type"] == "ignore" ) > + return; > + > if (( BlockToken == "hp-ux" ) && ( rec[ "processor" ] != "378" )) > { > if ( index( rec[ "processor" ], Machine ) == 0 ) > diff --git a/cde/databases/CDE-INFO.udb b/cde/databases/CDE-INFO.udb > index be133a3..4aeb073 100644 > --- a/cde/databases/CDE-INFO.udb > +++ b/cde/databases/CDE-INFO.udb > @@ -162,161 +162,257 @@ > #<<----------------------------- > # > programs/dtinfo/dtinfogen/infolib/C/SGML/dtinfo.af > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/dtinfo.af > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/dtinfo.decl > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/dtinfo.decl > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/dtinfoBook.dtd > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/dtinfoBook.dtd > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/dtinfoTOC.dtd > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/dtinfoTOC.dtd > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/dtinfoStyle.dtd > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/dtinfoStyle.dtd > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/docbook.dtd > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/docbook.dtd > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/catalog > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/catalog > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-catalog > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-catalog > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/proxy.ss > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/proxy.ss > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-amsa.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-amsa.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-amsb.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-amsb.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-amsc.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-amsc.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-amsn.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-amsn.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-amso.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-amso.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-amsr.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-amsr.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-box.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-box.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-cyr1.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-cyr1.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-cyr2.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-cyr2.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-dia.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-dia.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-grk1.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-grk1.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-grk2.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-grk2.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-grk3.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-grk3.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-grk4.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-grk4.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-lat1.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-lat1.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-lat2.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-lat2.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-mfrk.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-mfrk.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-mopf.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-mopf.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-mscr.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-mscr.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-num.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-num.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-pub.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-pub.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/iso-tech.gml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/iso-tech.gml > } > # > programs/dtinfo/dtinfogen/infolib/C/SGML/styprolog.sgml > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/C/SGML/styprolog.sgml > } > diff --git a/cde/databases/CDE-INFOLIB-LOC.src > b/cde/databases/CDE-INFOLIB-LOC.src > index 1480a49..74dbac3 100644 > --- a/cde/databases/CDE-INFOLIB-LOC.src > +++ b/cde/databases/CDE-INFOLIB-LOC.src > @@ -130,6 +130,7 @@ XCOMM > status = ------ > } > > +#if defined(HAVE_DTINFO) > XCOMM > XCOMM >>----------------------------- > XCOMM > @@ -671,3 +672,4 @@ XCOMM > ########################################################################## > #endif > > #endif /* __osf__ */ > +#endif /* HAVE_DTINFO */ > diff --git a/cde/databases/CDE-LOC.src b/cde/databases/CDE-LOC.src > index fbfc5c5..22f6625 100644 > --- a/cde/databases/CDE-LOC.src > +++ b/cde/databases/CDE-LOC.src > @@ -309,11 +309,13 @@ programs/localized/%_LANG_%/app-defaults/Dtimsstart > { default > install_target = /usr/dt/app-defaults/%_LANG_%/Dtimsstart > } > +#if defined(HAVE_DTINFO) > XCOMM > programs/localized/%_LANG_%/app-defaults/Dtinfo > { default > install_target = /usr/dt/app-defaults/%_LANG_%/Dtinfo > } > +#endif > XCOMM > programs/localized/%_LANG_%/app-defaults/Dtlogin > { default > @@ -826,11 +828,13 @@ programs/localized/%_LANG_%/types/dtfile.dt > { default > install_target = /usr/dt/appconfig/types/%_LANG_%/dtfile.dt > } > +#if defined(HAVE_DTINFO) > XCOMM > programs/localized/%_LANG_%/types/dtinfo.dt > { default > install_target = /usr/dt/appconfig/types/%_LANG_%/dtinfo.dt > } > +#endif > XCOMM > programs/localized/%_LANG_%/types/dtpad.dt > { default > diff --git a/cde/databases/CDE-MSG-LOC.src b/cde/databases/CDE-MSG-LOC.src > index 2b61d88..351ce21 100644 > --- a/cde/databases/CDE-MSG-LOC.src > +++ b/cde/databases/CDE-MSG-LOC.src > @@ -366,6 +366,7 @@ programs/localized/%_LANG_%/msg/dthelpprint.cat > install_target = /usr/dt/lib/nls/msg/%_LANG_%/dthelpprint.cat > } > > +#if defined(HAVE_DTINFO) > XCOMM ############################ > XCOMM # Dtinfo Message catalogs > XCOMM ############################ > @@ -378,6 +379,7 @@ programs/localized/%_LANG_%/msg/dtinfo_start.cat > { default > install_target = /usr/dt/lib/nls/msg/%_LANG_%/dtinfo_start.cat > } > +#endif > XCOMM > programs/localized/%_LANG_%/msg/dtsearch.cat > { default > diff --git a/cde/databases/CDE-RUN.udb b/cde/databases/CDE-RUN.udb > index d534e9b..3852f36 100644 > --- a/cde/databases/CDE-RUN.udb > +++ b/cde/databases/CDE-RUN.udb > @@ -1846,12 +1846,18 @@ programs/dtsr/dtsearch.dbd > #<<----------------------------- > # > programs/dtinfo/dtinfo/src/dtinfo > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/bin/dtinfo > mode = 0555 > } > # > programs/dtinfo/clients/dtinfo_start/dtinfo_start > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/dtinfo_start > mode = 0555 > @@ -1865,72 +1871,108 @@ programs/dtinfo/clients/dtinfo_start/dtinfo_start > #<<----------------------------- > # > programs/dtinfo/dtinfogen/infolib/etc/dtinfogen > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/bin/dtinfogen > mode = 0555 > } > # > programs/dtinfo/dtinfogen/infolib/etc/dtinfogen_worker > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/dtinfogen_worker > mode = 0555 > } > # > programs/dtinfo/dtinfogen/infolib/etc/MixedGen > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/MixedGen > mode = 0555 > } > # > programs/dtinfo/dtinfogen/infolib/etc/NCFGen > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/NCFGen > mode = 0555 > } > # > programs/dtinfo/dtinfogen/infolib/etc/NodeParser > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/NodeParser > mode = 0555 > } > # > programs/dtinfo/dtinfogen/infolib/etc/StyleUpdate > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/StyleUpdate > mode = 0555 > } > # > programs/dtinfo/dtinfogen/install/valBase > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/valBase > mode = 0555 > } > # > programs/dtinfo/dtinfogen/install/ChangeCaseTitle > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/ChangeCaseTitle > mode = 0555 > } > # > programs/dtinfo/dtinfogen/install/InstallBase > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/InstallBase > mode = 0555 > } > # > programs/dtinfo/dtinfogen/install/DeInstallBase > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/DeInstallBase > mode = 0555 > } > # > programs/dtinfo/dtinfogen/install/Librarian > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/Librarian > mode = 0555 > } > # > programs/nsgmls/nsgmls > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/nsgmls > mode = 0555 > @@ -1951,12 +1993,18 @@ programs/dtdocbook/sgmls/sgmls > #<<----------------------------- > # > programs/dtinfo/dtinfogen/mmdb/src/dbdrv > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/dbdrv > mode = 0555 > } > # > programs/dtinfo/dtinfogen/mmdb/StyleSheet/validator > +{ freebsd > + type = ignore > +} > { default > install_target = /usr/dt/infolib/etc/validator > mode = 0555 > diff --git a/cde/databases/CDE-SHLIBS.src b/cde/databases/CDE-SHLIBS.src > index c756ca6..2bb4944 100644 > --- a/cde/databases/CDE-SHLIBS.src > +++ b/cde/databases/CDE-SHLIBS.src > @@ -1410,6 +1410,7 @@ XCOMM > install_target = /usr/dt/lib/libDtSearch.so > type = sym_link > } > +#if defined(HAVE_DTINFO) > XCOMM > lib/DtMmdb/libDtMmdb.so.2 > { freebsd > @@ -1422,3 +1423,4 @@ XCOMM > install_target = /usr/dt/lib/libDtMmdb.so > type = sym_link > } > +#endif > diff --git a/cde/databases/Imakefile b/cde/databases/Imakefile > index 3786440..df527d6 100644 > --- a/cde/databases/Imakefile > +++ b/cde/databases/Imakefile > @@ -8,30 +8,39 @@ XCOMM $TOG: Imakefile /main/17 1998/03/19 09:46:16 mgreess $ > */ > #if defined (HPArchitecture) && (OSMajorVersion > 9) > UDB_RELEASE_OPT = -ReleaseStream hp-ux > +#define HaveDtInfo -DHAVE_DTINFO > #endif > #ifdef SunArchitecture > UDB_RELEASE_OPT = -ReleaseStream sun > +#define HaveDtInfo -DHAVE_DTINFO > #endif > #ifdef RsArchitecture > UDB_RELEASE_OPT = -ReleaseStream aix > +#define HaveDtInfo -DHAVE_DTINFO > #endif > #ifdef AlphaArchitecture > UDB_RELEASE_OPT = -ReleaseStream dec > +#define HaveDtInfo -DHAVE_DTINFO > #endif > #ifdef USLArchitecture > UDB_RELEASE_OPT = -ReleaseStream usl > +#define HaveDtInfo -DHAVE_DTINFO > #endif > #ifdef UXPArchitecture > UDB_RELEASE_OPT = -ReleaseStream uxp > +#define HaveDtInfo -DHAVE_DTINFO > #endif > #ifdef LinuxArchitecture > UDB_RELEASE_OPT = -ReleaseStream linux > +#define HaveDtInfo -DHAVE_DTINFO > #endif > #ifdef OpenBSDArchitecture > UDB_RELEASE_OPT = -ReleaseStream openbsd > +#define HaveDtInfo -DHAVE_DTINFO > #endif > #ifdef FreeBSDArchitecture > UDB_RELEASE_OPT = -ReleaseStream freebsd > +#define HaveDtInfo > #endif > > /* > @@ -40,9 +49,9 @@ UDB_RELEASE_OPT = -ReleaseStream freebsd > */ > #ifdef RsArchitecture > /* AIX cpp rejects "hp-ux" as an invalid sub-option. */ > -UDB_CPP_UNDEF_LIST = -UhpV4 -Uhpux -Uaix -Usun -Uusl -Udec -Uuxp > -Uunix > +UDB_CPP_UNDEF_LIST = -UhpV4 -Uhpux -Uaix -Usun -Uusl -Udec -Uuxp > -Uunix HaveDtInfo > #else > -UDB_CPP_UNDEF_LIST = -UhpV4 -Uhpux -Uhp-ux -Uaix -Usun -Uusl -Udec -Uuxp > -Uunix -Ulinux > +UDB_CPP_UNDEF_LIST = -UhpV4 -Uhpux -Uhp-ux -Uaix -Usun -Uusl -Udec -Uuxp > -Uunix -Ulinux HaveDtInfo > #endif > > > -- Jon Trulson The Higgs Field is what make atoms matter. -- Tom L. ------------------------------------------------------------------------------ Don't let slow site performance ruin your business. Deploy New Relic APM Deploy New Relic app performance management and know exactly what is happening inside your Ruby, Python, PHP, Java, and .NET app Try New Relic at no cost today and get our sweet Data Nerd shirt too! http://p.sf.net/sfu/newrelic-dev2dev _______________________________________________ cdesktopenv-devel mailing list cdesktopenv-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel