• R/O
  • HTTP
  • SSH


Keine Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#objective-cqtwindows誰得cocoapythonphprubygameguibathyscaphec翻訳omegat計画中(planning stage)frameworktwittertestdomvb.netdirectxbtronarduinopreviewerゲームエンジン

POSIX.1 National Language Support API for MinGW

Commit MetaInfo

Revision637126e424c39ff00bf020d8bb97e7a79c3f3451 (tree)
Zeit2008-01-02 03:45:09
AutorKeith Marshall <keithmarshall@user...>
CommiterKeith Marshall

Log Message

Establish package structure for distribution.

Ändern Zusammenfassung


--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,27 @@
1+2008-01-01 Keith Marshall <keithmarshall@users.sourceforge.net>
3+ Establish package structure for distribution.
5+ * README, FDL: New files.
7+ * Makefile.in (scriptdir, docdir): New macros; define them.
8+ (DISTDOC_SOURCES): New macro; define to include ChangeLog, README
9+ and FDL as distributed files.
11+ (INSTALL_PROGS): Macro renamed to...
12+ (DEV_SCRIPTS): ...this.
13+ (MISC_SOURCES): Update accordingly.
14+ (INSTALL_SCRIPT): New macro; define per autoconf substitution.
15+ (install-bin-progs, install-scripts): New make targets.
16+ (install-progs): Use them.
17+ (DISTNAME): Add SNAPSHOT placeholder macro.
18+ (bindist-tag, devdist-tag): New macros; define them.
19+ (bindist-docs-install): New target.
20+ (devdist-headers-install): New target.
21+ (devdist-docs-install, devdist-extra-docs-install): New targets.
22+ (devdist): New target; use them.
23+ (dist): Build it.
125 2007-12-31 Keith Marshall <keithmarshall@users.sourceforge.net>
327 Support direct building as a cross-hosted development kit.
--- /dev/null
+++ b/FDL
@@ -0,0 +1,397 @@
1+ GNU Free Documentation License
2+ Version 1.2, November 2002
5+ Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
6+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
7+ Everyone is permitted to copy and distribute verbatim copies
8+ of this license document, but changing it is not allowed.
13+The purpose of this License is to make a manual, textbook, or other
14+functional and useful document "free" in the sense of freedom: to
15+assure everyone the effective freedom to copy and redistribute it,
16+with or without modifying it, either commercially or noncommercially.
17+Secondarily, this License preserves for the author and publisher a way
18+to get credit for their work, while not being considered responsible
19+for modifications made by others.
21+This License is a kind of "copyleft", which means that derivative
22+works of the document must themselves be free in the same sense. It
23+complements the GNU General Public License, which is a copyleft
24+license designed for free software.
26+We have designed this License in order to use it for manuals for free
27+software, because free software needs free documentation: a free
28+program should come with manuals providing the same freedoms that the
29+software does. But this License is not limited to software manuals;
30+it can be used for any textual work, regardless of subject matter or
31+whether it is published as a printed book. We recommend this License
32+principally for works whose purpose is instruction or reference.
37+This License applies to any manual or other work, in any medium, that
38+contains a notice placed by the copyright holder saying it can be
39+distributed under the terms of this License. Such a notice grants a
40+world-wide, royalty-free license, unlimited in duration, to use that
41+work under the conditions stated herein. The "Document", below,
42+refers to any such manual or work. Any member of the public is a
43+licensee, and is addressed as "you". You accept the license if you
44+copy, modify or distribute the work in a way requiring permission
45+under copyright law.
47+A "Modified Version" of the Document means any work containing the
48+Document or a portion of it, either copied verbatim, or with
49+modifications and/or translated into another language.
51+A "Secondary Section" is a named appendix or a front-matter section of
52+the Document that deals exclusively with the relationship of the
53+publishers or authors of the Document to the Document's overall subject
54+(or to related matters) and contains nothing that could fall directly
55+within that overall subject. (Thus, if the Document is in part a
56+textbook of mathematics, a Secondary Section may not explain any
57+mathematics.) The relationship could be a matter of historical
58+connection with the subject or with related matters, or of legal,
59+commercial, philosophical, ethical or political position regarding
62+The "Invariant Sections" are certain Secondary Sections whose titles
63+are designated, as being those of Invariant Sections, in the notice
64+that says that the Document is released under this License. If a
65+section does not fit the above definition of Secondary then it is not
66+allowed to be designated as Invariant. The Document may contain zero
67+Invariant Sections. If the Document does not identify any Invariant
68+Sections then there are none.
70+The "Cover Texts" are certain short passages of text that are listed,
71+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
72+the Document is released under this License. A Front-Cover Text may
73+be at most 5 words, and a Back-Cover Text may be at most 25 words.
75+A "Transparent" copy of the Document means a machine-readable copy,
76+represented in a format whose specification is available to the
77+general public, that is suitable for revising the document
78+straightforwardly with generic text editors or (for images composed of
79+pixels) generic paint programs or (for drawings) some widely available
80+drawing editor, and that is suitable for input to text formatters or
81+for automatic translation to a variety of formats suitable for input
82+to text formatters. A copy made in an otherwise Transparent file
83+format whose markup, or absence of markup, has been arranged to thwart
84+or discourage subsequent modification by readers is not Transparent.
85+An image format is not Transparent if used for any substantial amount
86+of text. A copy that is not "Transparent" is called "Opaque".
88+Examples of suitable formats for Transparent copies include plain
89+ASCII without markup, Texinfo input format, LaTeX input format, SGML
90+or XML using a publicly available DTD, and standard-conforming simple
91+HTML, PostScript or PDF designed for human modification. Examples of
92+transparent image formats include PNG, XCF and JPG. Opaque formats
93+include proprietary formats that can be read and edited only by
94+proprietary word processors, SGML or XML for which the DTD and/or
95+processing tools are not generally available, and the
96+machine-generated HTML, PostScript or PDF produced by some word
97+processors for output purposes only.
99+The "Title Page" means, for a printed book, the title page itself,
100+plus such following pages as are needed to hold, legibly, the material
101+this License requires to appear in the title page. For works in
102+formats which do not have any title page as such, "Title Page" means
103+the text near the most prominent appearance of the work's title,
104+preceding the beginning of the body of the text.
106+A section "Entitled XYZ" means a named subunit of the Document whose
107+title either is precisely XYZ or contains XYZ in parentheses following
108+text that translates XYZ in another language. (Here XYZ stands for a
109+specific section name mentioned below, such as "Acknowledgements",
110+"Dedications", "Endorsements", or "History".) To "Preserve the Title"
111+of such a section when you modify the Document means that it remains a
112+section "Entitled XYZ" according to this definition.
114+The Document may include Warranty Disclaimers next to the notice which
115+states that this License applies to the Document. These Warranty
116+Disclaimers are considered to be included by reference in this
117+License, but only as regards disclaiming warranties: any other
118+implication that these Warranty Disclaimers may have is void and has
119+no effect on the meaning of this License.
124+You may copy and distribute the Document in any medium, either
125+commercially or noncommercially, provided that this License, the
126+copyright notices, and the license notice saying this License applies
127+to the Document are reproduced in all copies, and that you add no other
128+conditions whatsoever to those of this License. You may not use
129+technical measures to obstruct or control the reading or further
130+copying of the copies you make or distribute. However, you may accept
131+compensation in exchange for copies. If you distribute a large enough
132+number of copies you must also follow the conditions in section 3.
134+You may also lend copies, under the same conditions stated above, and
135+you may publicly display copies.
140+If you publish printed copies (or copies in media that commonly have
141+printed covers) of the Document, numbering more than 100, and the
142+Document's license notice requires Cover Texts, you must enclose the
143+copies in covers that carry, clearly and legibly, all these Cover
144+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
145+the back cover. Both covers must also clearly and legibly identify
146+you as the publisher of these copies. The front cover must present
147+the full title with all words of the title equally prominent and
148+visible. You may add other material on the covers in addition.
149+Copying with changes limited to the covers, as long as they preserve
150+the title of the Document and satisfy these conditions, can be treated
151+as verbatim copying in other respects.
153+If the required texts for either cover are too voluminous to fit
154+legibly, you should put the first ones listed (as many as fit
155+reasonably) on the actual cover, and continue the rest onto adjacent
158+If you publish or distribute Opaque copies of the Document numbering
159+more than 100, you must either include a machine-readable Transparent
160+copy along with each Opaque copy, or state in or with each Opaque copy
161+a computer-network location from which the general network-using
162+public has access to download using public-standard network protocols
163+a complete Transparent copy of the Document, free of added material.
164+If you use the latter option, you must take reasonably prudent steps,
165+when you begin distribution of Opaque copies in quantity, to ensure
166+that this Transparent copy will remain thus accessible at the stated
167+location until at least one year after the last time you distribute an
168+Opaque copy (directly or through your agents or retailers) of that
169+edition to the public.
171+It is requested, but not required, that you contact the authors of the
172+Document well before redistributing any large number of copies, to give
173+them a chance to provide you with an updated version of the Document.
178+You may copy and distribute a Modified Version of the Document under
179+the conditions of sections 2 and 3 above, provided that you release
180+the Modified Version under precisely this License, with the Modified
181+Version filling the role of the Document, thus licensing distribution
182+and modification of the Modified Version to whoever possesses a copy
183+of it. In addition, you must do these things in the Modified Version:
185+A. Use in the Title Page (and on the covers, if any) a title distinct
186+ from that of the Document, and from those of previous versions
187+ (which should, if there were any, be listed in the History section
188+ of the Document). You may use the same title as a previous version
189+ if the original publisher of that version gives permission.
190+B. List on the Title Page, as authors, one or more persons or entities
191+ responsible for authorship of the modifications in the Modified
192+ Version, together with at least five of the principal authors of the
193+ Document (all of its principal authors, if it has fewer than five),
194+ unless they release you from this requirement.
195+C. State on the Title page the name of the publisher of the
196+ Modified Version, as the publisher.
197+D. Preserve all the copyright notices of the Document.
198+E. Add an appropriate copyright notice for your modifications
199+ adjacent to the other copyright notices.
200+F. Include, immediately after the copyright notices, a license notice
201+ giving the public permission to use the Modified Version under the
202+ terms of this License, in the form shown in the Addendum below.
203+G. Preserve in that license notice the full lists of Invariant Sections
204+ and required Cover Texts given in the Document's license notice.
205+H. Include an unaltered copy of this License.
206+I. Preserve the section Entitled "History", Preserve its Title, and add
207+ to it an item stating at least the title, year, new authors, and
208+ publisher of the Modified Version as given on the Title Page. If
209+ there is no section Entitled "History" in the Document, create one
210+ stating the title, year, authors, and publisher of the Document as
211+ given on its Title Page, then add an item describing the Modified
212+ Version as stated in the previous sentence.
213+J. Preserve the network location, if any, given in the Document for
214+ public access to a Transparent copy of the Document, and likewise
215+ the network locations given in the Document for previous versions
216+ it was based on. These may be placed in the "History" section.
217+ You may omit a network location for a work that was published at
218+ least four years before the Document itself, or if the original
219+ publisher of the version it refers to gives permission.
220+K. For any section Entitled "Acknowledgements" or "Dedications",
221+ Preserve the Title of the section, and preserve in the section all
222+ the substance and tone of each of the contributor acknowledgements
223+ and/or dedications given therein.
224+L. Preserve all the Invariant Sections of the Document,
225+ unaltered in their text and in their titles. Section numbers
226+ or the equivalent are not considered part of the section titles.
227+M. Delete any section Entitled "Endorsements". Such a section
228+ may not be included in the Modified Version.
229+N. Do not retitle any existing section to be Entitled "Endorsements"
230+ or to conflict in title with any Invariant Section.
231+O. Preserve any Warranty Disclaimers.
233+If the Modified Version includes new front-matter sections or
234+appendices that qualify as Secondary Sections and contain no material
235+copied from the Document, you may at your option designate some or all
236+of these sections as invariant. To do this, add their titles to the
237+list of Invariant Sections in the Modified Version's license notice.
238+These titles must be distinct from any other section titles.
240+You may add a section Entitled "Endorsements", provided it contains
241+nothing but endorsements of your Modified Version by various
242+parties--for example, statements of peer review or that the text has
243+been approved by an organization as the authoritative definition of a
246+You may add a passage of up to five words as a Front-Cover Text, and a
247+passage of up to 25 words as a Back-Cover Text, to the end of the list
248+of Cover Texts in the Modified Version. Only one passage of
249+Front-Cover Text and one of Back-Cover Text may be added by (or
250+through arrangements made by) any one entity. If the Document already
251+includes a cover text for the same cover, previously added by you or
252+by arrangement made by the same entity you are acting on behalf of,
253+you may not add another; but you may replace the old one, on explicit
254+permission from the previous publisher that added the old one.
256+The author(s) and publisher(s) of the Document do not by this License
257+give permission to use their names for publicity for or to assert or
258+imply endorsement of any Modified Version.
263+You may combine the Document with other documents released under this
264+License, under the terms defined in section 4 above for modified
265+versions, provided that you include in the combination all of the
266+Invariant Sections of all of the original documents, unmodified, and
267+list them all as Invariant Sections of your combined work in its
268+license notice, and that you preserve all their Warranty Disclaimers.
270+The combined work need only contain one copy of this License, and
271+multiple identical Invariant Sections may be replaced with a single
272+copy. If there are multiple Invariant Sections with the same name but
273+different contents, make the title of each such section unique by
274+adding at the end of it, in parentheses, the name of the original
275+author or publisher of that section if known, or else a unique number.
276+Make the same adjustment to the section titles in the list of
277+Invariant Sections in the license notice of the combined work.
279+In the combination, you must combine any sections Entitled "History"
280+in the various original documents, forming one section Entitled
281+"History"; likewise combine any sections Entitled "Acknowledgements",
282+and any sections Entitled "Dedications". You must delete all sections
283+Entitled "Endorsements".
288+You may make a collection consisting of the Document and other documents
289+released under this License, and replace the individual copies of this
290+License in the various documents with a single copy that is included in
291+the collection, provided that you follow the rules of this License for
292+verbatim copying of each of the documents in all other respects.
294+You may extract a single document from such a collection, and distribute
295+it individually under this License, provided you insert a copy of this
296+License into the extracted document, and follow this License in all
297+other respects regarding verbatim copying of that document.
302+A compilation of the Document or its derivatives with other separate
303+and independent documents or works, in or on a volume of a storage or
304+distribution medium, is called an "aggregate" if the copyright
305+resulting from the compilation is not used to limit the legal rights
306+of the compilation's users beyond what the individual works permit.
307+When the Document is included in an aggregate, this License does not
308+apply to the other works in the aggregate which are not themselves
309+derivative works of the Document.
311+If the Cover Text requirement of section 3 is applicable to these
312+copies of the Document, then if the Document is less than one half of
313+the entire aggregate, the Document's Cover Texts may be placed on
314+covers that bracket the Document within the aggregate, or the
315+electronic equivalent of covers if the Document is in electronic form.
316+Otherwise they must appear on printed covers that bracket the whole
322+Translation is considered a kind of modification, so you may
323+distribute translations of the Document under the terms of section 4.
324+Replacing Invariant Sections with translations requires special
325+permission from their copyright holders, but you may include
326+translations of some or all Invariant Sections in addition to the
327+original versions of these Invariant Sections. You may include a
328+translation of this License, and all the license notices in the
329+Document, and any Warranty Disclaimers, provided that you also include
330+the original English version of this License and the original versions
331+of those notices and disclaimers. In case of a disagreement between
332+the translation and the original version of this License or a notice
333+or disclaimer, the original version will prevail.
335+If a section in the Document is Entitled "Acknowledgements",
336+"Dedications", or "History", the requirement (section 4) to Preserve
337+its Title (section 1) will typically require changing the actual
343+You may not copy, modify, sublicense, or distribute the Document except
344+as expressly provided for under this License. Any other attempt to
345+copy, modify, sublicense or distribute the Document is void, and will
346+automatically terminate your rights under this License. However,
347+parties who have received copies, or rights, from you under this
348+License will not have their licenses terminated so long as such
349+parties remain in full compliance.
354+The Free Software Foundation may publish new, revised versions
355+of the GNU Free Documentation License from time to time. Such new
356+versions will be similar in spirit to the present version, but may
357+differ in detail to address new problems or concerns. See
360+Each version of the License is given a distinguishing version number.
361+If the Document specifies that a particular numbered version of this
362+License "or any later version" applies to it, you have the option of
363+following the terms and conditions either of that specified version or
364+of any later version that has been published (not as a draft) by the
365+Free Software Foundation. If the Document does not specify a version
366+number of this License, you may choose any version ever published (not
367+as a draft) by the Free Software Foundation.
370+ADDENDUM: How to use this License for your documents
372+To use this License in a document you have written, include a copy of
373+the License in the document and put the following copyright and
374+license notices just after the title page:
376+ Copyright (c) YEAR YOUR NAME.
377+ Permission is granted to copy, distribute and/or modify this document
378+ under the terms of the GNU Free Documentation License, Version 1.2
379+ or any later version published by the Free Software Foundation;
380+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
381+ A copy of the license is included in the section entitled "GNU
382+ Free Documentation License".
384+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
385+replace the "with...Texts." line with this:
387+ with the Invariant Sections being LIST THEIR TITLES, with the
388+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
390+If you have Invariant Sections without Cover Texts, or some other
391+combination of the three, merge those two alternatives to suit the
394+If your document contains nontrivial examples of program code, we
395+recommend releasing these examples in parallel under your choice of
396+free software license, such as the GNU General Public License,
397+to permit their use in free software.
--- a/Makefile.in
+++ b/Makefile.in
@@ -6,10 +6,10 @@ VERSION = @PACKAGE_VERSION@
77 # $Id$
88 #
9-# Copyright (C) 2006, 2007, Keith Marshall
9+# Copyright (C) 2006, 2007, 2008, Keith Marshall
1010 #
1111 # Written by Keith Marshall <keithmarshall@users.sourceforge.net>
12-# Last modification: 13-Nov-2007
12+# Last modification: 01-Jan-2008
1313 #
1414 #
1515 # This is free software. It is provided AS IS, in the hope that it may
@@ -36,7 +36,9 @@ canonical_prefix = @canonical_prefix@
3737 bindir = @bindir@
3838 libdir = @libdir@
39+scriptdir = @datadir@/$(PACKAGE)/scripts
3940 includedir = @includedir@
41+docdir = @datadir@/doc/$(PACKAGE)
4042 mandir = @mandir@
4244 CC = @CC@
@@ -91,9 +93,10 @@ GENCAT_HEADERS = gencat.h gcmsgs.h mcutfsig.h
9193 GENCAT_SOURCES = gencat.c mcload.c mcsource.c mciconv.c mcmerge.c mcutfsig.c
94-OTHER_SOURCES = COPYING ChangeLog mkinstalldirs install-sh $(MISC_SOURCES)
96+OTHER_SOURCES = $(DISTDOC_SOURCES) mkinstalldirs install-sh $(MISC_SOURCES)
97100 MANPAGE_SOURCES = catopen.man catgets.man catclose.man gencat.man
99102 # MANSECTS specifies the set of *standard* man section identifiers, to
@@ -130,7 +133,7 @@ BUILD_LIBS = libcatgets.a
130133 BUILD_DLLS = catgets$(DLLVERSION).dll
133-INSTALL_PROGS = gendefs.awk
136+DEV_SCRIPTS = gendefs.awk
135138 # Generic rule, replacing the built-in default, to create an object file
136139 # from a C source file...
@@ -202,6 +205,7 @@ tool_prefix = @target_alias@`test -n "@target_alias@" && echo "-"`
207211 DLL_IMPORT_LIBNAME = lib`echo "$$dll" | sed 's?$(DLLVERSION).dll?.dll.a?'`
@@ -213,21 +217,34 @@ install-all-native: install-progs install-headers install-libs
213217 install-all-cross-hosted: install-progs
214218 cd cross-build; $(MAKE) install-headers install-libs
216-install-bin install-progs: all
217- $(mkinstalldirs) --require ${exec_prefix} ${bindir} ${libdir}
218- for prog in $(BUILD_PROGS); do \
219- echo $(INSTALL_PROGRAM) $$prog ${bindir}/$(tool_prefix)$$prog; \
220- $(INSTALL_PROGRAM) $$prog ${bindir}/$(tool_prefix)$$prog; \
220+install-progs: install-bin-progs install-scripts
222+install-bin-progs: $(BUILD_PROGS)
223+ $(mkinstalldirs) --require ${exec_prefix} ${bindir}
224+ for prog in $^; do \
225+ progname=`IFS='\\/'; set x $$prog; eval echo '$$'$$#`; \
226+ echo $(INSTALL_PROGRAM) $$prog ${bindir}/$(tool_prefix)$$progname; \
227+ $(INSTALL_PROGRAM) $$prog ${bindir}/$(tool_prefix)$$progname; \
221228 done
222- for prog in $(INSTALL_PROGS); do \
223- echo $(INSTALL_PROGRAM) ${srcdir}/$$prog ${bindir}/$(tool_prefix)$$prog; \
224- $(INSTALL_PROGRAM) ${srcdir}/$$prog ${bindir}/$(tool_prefix)$$prog; \
230+install-scripts: $(DEV_SCRIPTS)
231+ $(mkinstalldirs) --require ${prefix} ${scriptdir}
232+ for script in $^; do \
233+ prog=`IFS='\\/'; set x $$script; eval echo '$$'$$#`; \
234+ echo $(INSTALL_SCRIPT) $$script ${scriptdir}/$(tool_prefix)$$prog; \
235+ $(INSTALL_SCRIPT) $$script ${scriptdir}/$(tool_prefix)$$prog; \
225236 done
227-install-libs: all-libs $(all-dll)
238+install-dll: $(all-dll)
239+ $(mkinstalldirs) --require ${exec_prefix} ${bindir}
228240 test -z "$(all-dll)" || for dll in $(BUILD_DLLS); do \
229241 echo $(INSTALL_DATA) $$dll ${bindir}; \
230242 $(INSTALL_DATA) $$dll ${bindir}; \
243+ done
245+install-libs: all-libs $(all-dll)
246+ $(mkinstalldirs) --require ${exec_prefix} ${bindir} ${libdir}
247+ test -z "$(all-dll)" || for dll in $(BUILD_DLLS); do \
231248 echo $(INSTALL_DATA) $(DLL_IMPORT_LIBNAME) ${libdir}; \
232249 $(INSTALL_DATA) $(DLL_IMPORT_LIBNAME) ${libdir}; \
233250 done
@@ -268,12 +285,15 @@ install-ps:
268285 ## Distribution ##
269286 ## ============== ##
271-dist: srcdist bindist
288+dist: srcdist bindist devdist
272289 dist_srcdir = @abs_top_srcdir@
274291 DISTDIRS = include m4 repl repl/include man
295+bindist-tag = bin
296+devdist-tag = dev
278298 ZIP = gzip -c
279299 ZIPTYPE = tar.gz
@@ -293,12 +313,38 @@ srcdist:
293313 tar chf - $(DISTNAME) | $(ZIP) > $(DISTNAME)-src.$(ZIPTYPE)
294314 rm -rf $(DISTNAME)
296-bindist: all
316+bindist devdist: all
297317 rm -rf tmp; mkdir tmp
298- $(MAKE) prefix=`pwd`/tmp install-progs install-libs install-doc
299- cd tmp && tar chf - * | $(ZIP) > ../$(DISTNAME)-bin.$(ZIPTYPE)
318+ $(MAKE) prefix=`pwd`/tmp $@-install
319+ cd tmp && tar chf - * | $(ZIP) > ../$(DISTNAME)-$($@-tag).$(ZIPTYPE)
300320 rm -rf tmp
322+bindist-install: bindist-docs-install install-dll
323+devdist-install: devdist-docs-install devdist-headers-install
324+devdist-install: install-progs install-libs install-doc
326+bindist-docs-install: README COPYING
327+ $(mkinstalldirs) ${docdir}
328+ for file in $^; do \
329+ echo $(INSTALL_DATA) $$file ${docdir}; \
330+ $(INSTALL_DATA) $$file ${docdir}; \
331+ done
333+devdist-docs-install: bindist-docs-install devdist-extra-docs-install
335+devdist-extra-docs-install: FDL
336+ for file in $^; do \
337+ echo $(INSTALL_DATA) $$file ${docdir}; \
338+ $(INSTALL_DATA) $$file ${docdir}; \
339+ done
341+devdist-headers-install: nl_types.h langinfo.h
342+ $(mkinstalldirs) ${includedir}
343+ for file in $^; do \
344+ echo $(INSTALL_DATA) $$file ${includedir}; \
345+ $(INSTALL_DATA) $$file ${includedir}; \
346+ done
303349 ## ========== ##
304350 ## Clean Up ##
@@ -315,4 +361,4 @@ distclean: distclean-cross-hosted clean
315361 distclean-cross-hosted: FORCE
316362 rm -rf cross-build
318-# $RCSfile$Revision: 1.4 $: end of file
364+# $RCSfile$Revision: 1.5 $: end of file
--- /dev/null
+++ b/README
@@ -0,0 +1,253 @@
1+MinGW catgets README
4+Copyright (C) 2007, Keith Marshall
6+Written by Keith Marshall <keithmarshall@users.sourceforge.net>
7+Last modification: 20-Dec-2007
9+This package provides a native Win32 implementation of the POSIX National
10+Language Support API, conforming generally to IEEE standard 1003.1-2001,
11+and SUSv3, for adding national language message catalogue support to user
12+applications. It comprises a development library, designated libcatgets.a
13+for static linking, or catgets-<n>.dll with accompanying libcatgets.dll.a
14+import library for dynamic linking, with supporting nl_types.h header file,
15+delivering Win32 implementations of the catopen(), catgets() and catclose()
16+functions, as required by the POSIX National Language Support API; this is
17+accompanied by a suitable, standards conformant `gencat' utility program,
18+which is used to generate the message catalogue files, which are bound to
19+user applications making use of these library functions.
21+The MinGW catgets package is free software It is provided AS IS, in the
22+hope that it may be useful, but WITHOUT WARRANTY OF ANY KIND, not even an
26+Permission is granted to redistribute this software, either "as is" or
27+in modified form, under the terms of the GNU General Public License, as
28+published by the Free Software Foundation; either version 2, or (at your
29+option) any later version; see the file COPYING, for further details.
32+Packaging Options
35+MinGW catgets is available for download in three package formats; (the
36+full text of this README file is included with each):--
38+1) mingw-catgets-<version>-bin.tar.gz
40+ Provides only the pre-built dynamic link library, for use by client
41+ applications which are delivered in binary format. The DLL is placed
42+ in the `bin' subdirectory of the directory in which the package is
43+ untarred; typically this should be the root of either the MinGW
44+ tree, or the MSYS tree.
46+2) mingw-catgets-<version>-dev.tar.gz
48+ Provides the header files and precompiled libraries, which are needed
49+ to develop `catgets' client applications, together with the associated
50+ `manpage' documentation, and the `gencat' tool which must be used to
51+ compile compatible message catalogues. It should be untarred in the
52+ root of the MinGW tree, and client applications should be linked with
53+ the `-lcatgets' option, specified *after* the dependent object modules,
54+ on the linking command line.
56+3) mingw-catgets-<version>-src.tar.gz
58+ Provides the full source code from which the above two packages have
59+ been built; it supports building for native deployment, as the above,
60+ or for deployment as components of a cross-compiler tool chain.
63+Prerequisites for Building from Source
66+To build and install the catgets development libraries and tools, you
67+require a C compiler, and tool chain, such as that provided by MinGW, and
68+a build environment capable of running Bourne shell scripts, and the GNU
69+`make' utility, such as that provided by MSYS.
71+Before attempting to build MinGW catgets from source, you must ensure that
72+a suitable `iconv' implementation is installed. This is not normally the
73+case, with a standard MinGW/MSYS installation, but the requirement may be
74+satisfied by installing GNU libiconv; this *must* be libiconv-1.11 or later,
75+and it *must* incorporate the 2007-04-23 patch, correcting a Win32 specific
76+wchar_t conversion bug; you may ensure that this prerequisite is adequately
77+satisfied, by installing libiconv-1.11 using the mingwPORT script from
82+Building from Source, for use "In Place" on Win32
85+The build procedure, using MinGW and MSYS, is as follows:--
87+1) Choose a suitable directory, where you will build the package; (it
88+ must be a directory in which you have write permission). A typical
89+ example might be `~/src'; create it if necessary...
91+ mkdir -p ~/src
92+ cd ~/src
94+2) Extract the source distribution tarball...
96+ tar xzf [[/]path/to/]mingw-catgets-<version>.tar.gz
98+3) Create a build directory, and make it your working directory...
100+ mkdir mingw-catgets-<version>/build
101+ cd mingw-catgets-<version>/build
103+4) Configure the build...
105+ ../configure [options ...]
107+ For a typical MinGW installation, you will probably want to set, at
108+ least, the `--prefix=/mingw' option; if you don't, this setting will
109+ default to `--prefix=/usr/local', which is not what you want if you
110+ have installed MinGW and MSYS with their standard configurations.
112+ To see other available options, try...
114+ ../configure --help
116+ (You may wish to consider adjusting the `CFLAGS', or the `--mandir'
117+ settings).
119+5) Build the installable components...
121+ make
123+6) Install the basic development library components...
125+ make install
127+7) Install documentation...
129+ This step is optional, but recommended; if you have installed, or if
130+ you plan to install, the `man' package then...
132+ make install-man
134+ will allow you to access the manpages for gencat(1), catopen(3),
135+ catgets(3) and catclose(3) from any working directory.
138+Building for Cross-Hosted Use
141+MinGW catgets may be built as a component of a cross-hosted compiler tool
142+chain; this is supported directly by the build system, when a `--target'
143+option differing from `--host' is specified at `configure' time.
145+To build as a cross tool, the cross-compiler suite must already have been
146+installed, and the `--target' option must be specified to match the prefix
147+used to identify, and invoke the cross-compiler itself. For example, this
148+is how I build it, for use with my GNU/Linux hosted i586-mingw32-gcc tool
149+chain, (which is identified by the prefix `i586-mingw32'):--
151+1) You may, if you wish, install GNU libiconv. However, your host may
152+ already have a suitable iconv implementation, such as that provided by
153+ glibc on GNU/Linux systems; if this is the case, it should suffice.
155+2) Create the working directory to host the source tree, as described in
156+ steps (1) and (2) of the standard Win32 "In Place" build procedure.
158+3) Create a build directory, in which to progress the first stage of the
159+ build, and make it your working directory...
161+ mkdir mingw-catgets-<version>/build
162+ cd mingw-catgets-<version>/build
164+4) Configure the build...
166+ ../configure [options ...] --prefix=<prefix> --target=i586-mingw32
168+ As before, you may wish to review to options listed by...
170+ ../configure --help
172+ and adjust any you consider to be appropriate; it is important that you
173+ specify a <prefix> which matches the installation path of your cross
174+ compiler tool chain, and that you set the --target to match the name of
175+ your cross tools -- in my case, the cross compiler is i586-mingw32-gcc,
176+ and the entire tool chain shares the i586-mingw32 target prefix.
178+5) Build and install the cross tool components...
180+ make
181+ make install
183+ This results in building of the natively hosted tools, directly within
184+ the build directory, together with the subset of the library components
185+ which are needed to build these tools, and which are also compiled to
186+ native object code. Additionally, in the cross-build subdirectory, the
187+ appropriate target specific cross-compiler is invoked, to build the full
188+ set of libraries, as they will be required when subsequently deploying
189+ the cross-tools to create applications for the target platform.
191+ On successful completion of this cross-tools build, the cross-tools and
192+ the supporting cross-compiled libraries are installed into the prefix,
193+ directory, as specified in the configure command; at installation time,
194+ the names of the executable cross-tool programs are qualified by the
195+ addition of a program name prefix, to match the specified target.
197+6) Install documentation...
199+ As in the case of the natively built tool chain, step (5) does not
200+ install the man pages which accompany the package. These may be
201+ separately installed by issuing the command...
203+ make install-man
205+ In this case, the installed man pages retain the same basic names as
206+ used in the natively compiled case. If preferred, the man pages may
207+ be installed into an existing MANPATH directory, and distinguished
208+ their similarly named native counterparts, by in the first instance
209+ configuring with an explicit `--mandir=...' option, and then adding
210+ a target specific man page name prefix, such as...
212+ make man_prefix=i586-mingw32- install-man
214+7) Note that step (5) builds only the cross-compiled library components,
215+ which are the minimum required to support deployment of the cross-tools
216+ into an existing cross-compiler tool chain; in particular, it does not
217+ create a tool chain for eventual deployment on the target platform. If
218+ this is required, it may be prepared and packaged, without separate
219+ configuration, by completing the partial build which has already
220+ been initiated in the cross-build subdirectory...
222+ cd cross-build
223+ make
224+ make bindist
227+Linking MinGW Applications to use Message Catalogues
230+This package provides POSIX conformant national language support for
231+MinGW applications. Such support is added through calls to the POSIX
232+standard `catopen', `catgets' and `catclose' functions, as described
233+in the accompanying `man' pages. References to these functions are
234+resolved by addition of the `-lcatgets' option to the command line,
235+when linking the application; both static and dynamically linked
236+variants of the associated library are provided.
239+Preparing the Message Catalogues
242+Message catalogues, for use with the MinGW `catgets' implementation,
243+are compiled using a POSIX conforming `gencat' tool; (when deployed as
244+a component of a cross-hosted tool chain, this tool is named so as to
245+maintain consistency with the cross-compiler naming convention; thus
246+when the cross-compiler is built for, say, an i586-mingw32 target,
247+invoked as i586-mingw32-gcc for example, then gencat would be
248+consistently invoked as i586-mingw32-gencat.
250+The command syntax, and the syntax for its message definition source
251+files, is described in the accompanying `gencat' man page.
253+$RCSfile$: end of file