Browse files

Port to DJGPP, contributed by

Juan Manuel Guerrero <>
  • Loading branch information...
1 parent c2c4101 commit 7860209897bc23eaaba67019bf370e16da6efbd8 @bhaible bhaible committed Feb 27, 2001
@@ -0,0 +1,3 @@
+Installation on DJGPP:
+See the file djgpp/README.
@@ -0,0 +1,122 @@
+This is a port of GNU Libiconv 1.6 to MSDOS/DJGPP.
+1.: DJGPP specific changes.
+ =======================
+ There are no DJGPP specific changes. This package should
+ configure and compile out-of-the-box.
+ Please read the documentation to become familiar with this
+ product.
+2.: Installing the binary package.
+ ==============================
+2.1.: Copy the binary distribution into the top DJGPP installation
+ directory and unzip the binary distribution running *ONE* of
+ the following commands:
+ unzip32 or
+ djtarx or
+ pkunzip -d
+3.: Building the binaries from sources.
+ ===================================
+3.1.: To build the binaries you will need the following binary packages:
+ and
+ All this packages can be found in the v2gnu directory of any
+ Simtel.NET mirror.
+ You will need and *NOT* a prior version or the build will fail.
+ The same applies to You *MUST* use the updated versions of
+ (date: 2000-05-30) and (date: 2000-08-11). This
+ updated versions have been recompiled with and know about
+ the "/dev/env" functionality introduced with All the other
+ packages are the ones I have used to build the binaries from this sources.
+ Previuos and/or later versions of this packages may do the job as well but
+ I have not tested this.
+3.2.: Create a temporary directory and copy the source package:
+ into the temporary directory. If you download the source distribution
+ from one of the DJGPP archives, just unzip it preserving the directory
+ structure, runnig ONE of the following commands:
+ unzip32 or
+ djtarx or
+ pkunzip -d
+ Source distributions downloaded from one of the GNU FTP sites need
+ some more work to unpack. First, you MUST use the `djtar' program to
+ unzip the package. That's because some file names in the official
+ distributions need to be changed to avoid problems on the various
+ platforms supported by DJGPP. `djtar' can rename files on the fly
+ given a file with name mappings. The distribution includes a file
+ `djgpp/fnchange.lst' with the necessary mappings. So you need first
+ to retrieve that file, and then invoke `djtar' to unpack the
+ distribution. Here's how:
+ djtar -x -p -o libiconv-1.6/djgpp/fnchange.lst libiconv-1.6.tar.gz > lst
+ djtar -x -n lst libiconv-1.6.tar.gz
+ (The name of the distribution archive and the top-level directory will
+ be different for versions other than 1.6.)
+3.3.: The package is preconfigured for djdev203. To build the products you
+ should run the following command:
+ make
+ After the compilation has finished, you can check the products
+ running the command:
+ make check
+ To install the products run the command:
+ make install
+ This will install the products (iconv.exe iconv.h libcharset.h libconv.a
+ libcharset.a iconv.1 iconv.3 iconv_open.3 iconv_close.3) into your DJGPP
+ installation tree. As usual, prefix is defined as "/dev/env/DJDIR".
+ If you prefer to install into same other directory run the command:
+ make install prefix=z:/some/other/dir
+ Of course, you should replace "z:/some/other/dir" by an appropriate path
+ that will meet your requeriments.
+3.4.: If you need/want to reconfigure the package you will have to run the
+ following commands:
+ make distclean
+ djgpp\config
+ Please note that you *MUST* use the "distclean" option or the config.cache
+ file will *NOT* be deleted. In this case you are *NOT* reconfiguring
+ because the configuration informations is read from the cache file instead
+ of being newly computed.
+ To build the programs in a directory other than where the sources are,
+ you must add the parameter that specifies the source directory,
+ e.g:
+ x:\src\gnu\libiconv.16\djgpp\config x:/src/gnu/libiconv.16
+ Lets assume you want to build the binaries in a directory placed on a
+ different drive (z:\build in this case) from where the sources are,
+ then you will run the following commands:
+ z:
+ md \build
+ cd \build
+ x:\src\gnu\libiconv.16\djgpp\config x:/src/gnu/libiconv.16
+ You *MUST* use forward slashes to specify the source directory.
+ After having configured the package run the folowing commands to create
+ the binaries and docs and install them:
+ make
+ make check
+ make install
+ Send suggestions and bug reports concerning the DJGPP port to
+ comp.os.msdos.djgpp or Libiconv specific bugs
+ must be reported to Bruno Haible <>.
+ Guerrero, Juan Manuel <>
@@ -0,0 +1,210 @@
+@echo off
+echo Configuring GNU libiconv for DJGPP v2.x...
+Rem The SmallEnv tests protect against fixed and too small size
+Rem of the environment in stock DOS shell.
+Rem Find out where the sources are
+set XSRC=.
+if not "%XSRC%" == "." goto SmallEnv
+if "%1" == "" goto InPlace
+set XSRC=%1
+if not "%XSRC%" == "%1" goto SmallEnv
+redir -e /dev/null update %XSRC%/configure.orig ./configure
+test -f ./configure
+if errorlevel 1 update %XSRC%/configure ./configure
+test -d ./libcharset
+if errorlevel 1 md libcharset
+redir -e /dev/null update %XSRC%/libcharset/configure.orig ./libcharset/configure
+test -f ./libcharset/configure
+if errorlevel 1 update %XSRC%/libcharset/configure ./libcharset/configure
+Rem Update configuration files
+echo Updating configuration scripts...
+test -f ./configure.orig
+if errorlevel 1 update ./configure ./configure.orig
+sed -f %XSRC%/djgpp/config.sed ./configure.orig > configure
+if errorlevel 1 goto SedError
+test -f ./libcharset/configure.orig
+if errorlevel 1 update ./libcharset/configure ./libcharset/configure.orig
+sed -f %XSRC%/djgpp/config.sed ./libcharset/configure.orig > configure.tmp
+if errorlevel 1 goto SedError
+Rem The following is needed because the toplevel configure script calls the
+Rem %XSRC%/libcharset/configure script instead of ./libcharset/configure.
+test -f %XSRC%/libcharset/configure.orig
+if errorlevel 1 update %XSRC%/libcharset/configure %XSRC%/libcharset/configure.orig
+update configure.tmp %XSRC%/libcharset/configure
+rm ./configure.tmp
+Rem Make sure they have a file
+set CONFIG_SITE=%XSRC%/djgpp/
+if not "%CONFIG_SITE%" == "%XSRC%/djgpp/" goto SmallEnv
+Rem Make sure crucial file names are not munged by unpacking
+test -f %XSRC%/
+if not errorlevel 1 mv -f %XSRC%/ %XSRC%/config.h-in
+test -f %XSRC%/lib/
+if not errorlevel 1 mv -f %XSRC%/lib/ %XSRC%/lib/config.h-in
+test -f %XSRC%/libcharset/
+if not errorlevel 1 mv -f %XSRC%/libcharset/ %XSRC%/libcharset/config.h-in
+test -f %XSRC%/libcharset/include/
+if not errorlevel 1 mv -f %XSRC%/libcharset/include/ %XSRC%/libcharset/include/libcharset.h-in
+test -f %XSRC%/include/
+if not errorlevel 1 mv -f %XSRC%/include/ %XSRC%/include/iconv.h-in
+Rem All fixes needed to get the package configured, compiled and tested.
+Rem 1: Change the stateless-check script so it knowns about the
+Rem new filenames.
+Rem 2: Ditto for
+Rem 3: Ditto for source files.
+Rem 4: Change the files contained in the tests subdirectory from
+Rem UNIX-style EOL into DOS-style EOL so the testsuit works.
+test -f %XSRC%/stamp-djgppfixes
+if not errorlevel 1 goto TestsuitFixed
+Rem Fix the Makefile.ins.
+test -f %XSRC%/lib/Makefile.orig
+if errorlevel 1 update %XSRC%/lib/ %XSRC%/lib/Makefile.orig
+sed -f %XSRC%/djgpp/makefile.sed %XSRC%/lib/ > Makefile.tmp
+if errorlevel 1 goto SedError
+update Makefile.tmp %XSRC%/lib/
+rm Makefile.tmp
+test -f %XSRC%/tests/Makefile.orig
+if errorlevel 1 update %XSRC%/tests/ %XSRC%/tests/Makefile.orig
+sed -f %XSRC%/djgpp/makefile.sed %XSRC%/tests/ > Makefile.tmp
+if errorlevel 1 goto SedError
+update Makefile.tmp %XSRC%/tests/
+rm Makefile.tmp
+Rem Fix the source files.
+test -f %XSRC%/lib/iconv.orig
+if errorlevel 1 update %XSRC%/lib/iconv.c %XSRC%/lib/iconv.orig
+sed -f %XSRC%/djgpp/sources.sed %XSRC%/lib/iconv.c > iconv.tmp
+if errorlevel 1 goto SedError
+update iconv.tmp %XSRC%/lib/iconv.c
+rm iconv.tmp
+test -f %XSRC%/lib/converters.orig
+if errorlevel 1 update %XSRC%/lib/converters.h %XSRC%/lib/converters.orig
+sed -f %XSRC%/djgpp/sources.sed %XSRC%/lib/converters.h > converters.tmp
+if errorlevel 1 goto SedError
+update converters.tmp %XSRC%/lib/converters.h
+rm converters.tmp
+test -f %XSRC%/lib/cns/11643.orig
+if errorlevel 1 update %XSRC%/lib/cns/11643.h %XSRC%/lib/cns/11643.orig
+sed -f %XSRC%/djgpp/sources.sed %XSRC%/lib/cns/11643.h > 11643.tmp
+if errorlevel 1 goto SedError
+update 11643.tmp %XSRC%/lib/cns/11643.h
+rm 11643.tmp
+test -f %XSRC%/lib/iso/ir165.orig
+if errorlevel 1 update %XSRC%/lib/iso/ir165.h %XSRC%/lib/iso/ir165.orig
+sed -f %XSRC%/djgpp/sources.sed %XSRC%/lib/iso/ir165.h > ir165.tmp
+if errorlevel 1 goto SedError
+update ir165.tmp %XSRC%/lib/iso/ir165.h
+rm ir165.tmp
+Rem Let libtool use _libs all the time.
+test -f %XSRC%/autoconf/ltconfig.orig
+if errorlevel 1 update %XSRC%/autoconf/ltconfig %XSRC%/autoconf/ltconfig.orig
+sed "/objdir=/s|\.libs|_libs|" %XSRC%/autoconf/ltconfig > ltconfig.tmp
+if errorlevel 1 goto SedError
+update ltconfig.tmp %XSRC%/autoconf/ltconfig
+test -f %XSRC%/libcharset/autoconf/ltconfig.orig
+if errorlevel 1 update %XSRC%/libcharset/autoconf/ltconfig %XSRC%/libcharset/autoconf/ltconfig.orig
+update ltconfig.tmp %XSRC%/libcharset/autoconf/ltconfig
+rm ltconfig.tmp
+Rem Change file's NL to CRLF.
+utod %XSRC%/tests/*.txt
+utod %XSRC%/tests/GEORGIAN/*.txt
+utod %XSRC%/tests/ISO/*.txt
+utod %XSRC%/tests/MAC/*.txt
+Rem Fix the test scripts.
+if "%XSRC%" == "." goto NoDirChange
+cd | sed "s|:.*$|:|" > cd_BuildDir.bat
+cd | sed "s|^.:|cd |" >> cd_BuildDir.bat
+mv -f cd_BuildDir.bat %XSRC%/cd_BuildDir.bat
+echo %XSRC% | sed -e "s|^/dev/||" -e "s|/|:|" -e "s|:.*$|:|g" > cd_SrcDir.bat
+echo %XSRC% | sed -e "s|^/dev/||" -e "s|/|:/|" -e "s|^.*:|cd |" -e "s|^\.\.|cd &|" -e "s|/|\\|g" >> cd_SrcDir.bat
+call cd_SrcDir.bat
+call djgpp\edtest.bat
+call cd_BuildDir.bat
+rm -f cd_SrcDir.bat cd_BuildDir.bat %XSRC%/cd_BuildDir.bat
+goto TestsuitFixed
+call djgpp\edtest.bat
+touch %XSRC%/stamp-djgppfixes
+Rem This is required because DOS/Windows are case-insensitive
+Rem to file names, and "make install" will do nothing if Make
+Rem finds a file called `install'.
+if exist INSTALL mv -f INSTALL INSTALL.txt
+Rem install-sh is required by the configure script but clashes with the
+Rem various Makefile install-foo targets, so we MUST have it before the
+Rem script runs and rename it afterwards
+test -f %XSRC%/install-sh
+if not errorlevel 1 goto NoRen0
+test -f %XSRC%/
+if not errorlevel 1 mv -f %XSRC%/ %XSRC%/install-sh
+Rem Set HOSTNAME so it shows in config.status
+if not "%HOSTNAME%" == "" goto hostdone
+if "%windir%" == "" goto msdos
+set OS=MS-Windows
+if not "%OS%" == "MS-Windows" goto SmallEnv
+goto haveos
+set OS=MS-DOS
+if not "%OS%" == "MS-DOS" goto SmallEnv
+if not "%USERNAME%" == "" goto haveuname
+if not "%USER%" == "" goto haveuser
+echo No USERNAME and no USER found in the environment, using default values
+set HOSTNAME=Unknown PC
+if not "%HOSTNAME%" == "Unknown PC" goto SmallEnv
+goto userdone
+if not "%HOSTNAME%" == "%USER%'s PC" goto SmallEnv
+goto userdone
+if not "%HOSTNAME%" == "%USERNAME%'s PC" goto SmallEnv
+if not "%_HOSTNAME%" == "%HOSTNAME%, %OS%" goto SmallEnv
+set OS=
+echo Running the ./configure script...
+sh ./configure --src=%XSRC%
+if errorlevel 1 goto CfgError
+echo Done.
+goto End
+echo ./configure script editing failed!
+goto End
+echo ./configure script exited abnormally!
+goto End
+echo Your environment size is too small. Enlarge it and run me again.
+echo Configuration NOT done!
+test -f %XSRC%/
+if not errorlevel 1 goto NoRen1
+test -f %XSRC%/install-sh
+if not errorlevel 1 mv -f %XSRC%/install-sh %XSRC%/
+set XSRC=
Oops, something went wrong.

0 comments on commit 7860209

Please sign in to comment.