1Windows Build Notes 2=================== 3 4 To build GNUitar on Windows, you will need the following: 5o Microsoft Visual C++ 6.0 compiler (MSVC); 6o GTK 1.2 for Windows 7o Glib 1.2 for Windows 8o GNU libintl for Windows 9o GNU libiconv for Windows 10All the software except MSVC is free and can be downloaded from the site 11http://www.gimp.org/win32 12OR 13http://www.gimp.org/~tml/gimp/win32 14 15 Currently, the exact links are: 16http://www.gimp.org/~tml/gimp/win32/libintl-0.10.40-tml-20020904.zip 17http://sourceforge.net/project/showfiles.php?group_id=25167 (general link 18 for libiconv) 19http://prdownloads.sourceforge.net/gettext/libiconv-1.8-w32-1.bin.zip?download 20http://www.gimp.org/~tml/gimp/win32/glib-2.4.7.zip 21http://www.gimp.org/~tml/gimp/win32/glib-dev-2.4.7.zip 22http://www.gimp.org/~tml/gimp/win32/gtk+-1.3.0-20040315.zip 23http://www.gimp.org/~tml/gimp/win32/gtk+-dev-1.3.0-20030115.zip 24 25Please note that these links may change with the software updates. 26Another important note that since the first edition of this build guide, 27the original packages for GLib 2.2 and GTK 1.3 were removed. What I found are 28somewhat different versions, however I believe they should work. There is a 29certain doubt about compatibility of GLib 2.4 and libintl 0.10. In the case 30of any problems you should download all the latest packages for GLib and 31its dependencies (but NOT GTK 2.6 !) 32 33 34 You can obtain free Microsoft Visual C compiler from these two links: 35.NET Framework SDK: 36 http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/000/976/msdncompositedoc.xml&frame=true 37Platform SDK: 38 http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ 39 40 (The next two paragraphs is a quote from Forger's manual: 41http://winprog.org/tutorial). 42 "Microsoft has quietly released it's command line compiler and linker tools as 43part of the .NET Framework SDK. The Framework SDK comes with everything you 44need to for .NET development (C# compiler etc...) including the command line 45compiler cl.exe which, while it's intended for use with the .NET 46framework, is the same compiler that comes with Visual C++ Standard. 47 Since this is the .NET SDK, it doesn't come with the headers and libraries 48required for Win32 API development, as these are part of the Platform SDK. 49The Platform SDK is free as well. You only need the Core SDK, 50but feel free to download the other components as you desire. 51As a bonus, if you download the Platform SDK documentation (which I highly 52recommend) you will have a complete local and up to date Win32 reference which 53is MUCH easier to use than MSDN online." 54 55 You need to prepare your build environment, before you start to compile. 56Most of the packages above contain 2 important directories: "lib" and "include". 57Copy the contents of the "lib" directory of each package to the folder 58C:\Program Files\Microsoft Visual Studio\VC98\Lib (adjust this path 59to the real path where your MSVC installed), and the contents of the "include" 60directory to C:\Program Files\Microsoft Visual Studio\VC98\Include. 61Rename include\glib-2.0 to include\glib, lib\glib-2.0 to lib\glib, 62move \lib\include\gtk+\gdkconfig.h to include\gtkconfig.h. 63Now, you are ready to build the program. Launch MS Visual Studio, 64choose File->Open, select file gnuitar.dsp. 65Select Build->Set Active Configuration and choose "Release" for 66Pentium Pro/II/III, or "Release 586" for Pentium processor, to make 67the benefit of Pentium CPU extended instructions set. 68Press F7 to start build. If all the above were done correctly, you should 69not get error messages (please note that it produces few dozens of warnings, 70it is ok). If you get something like "Linker error: cannot resolve external 71symbols ...", this means that you've done something wrong when preparing 72build environment. 73 74 Command-line users should first run the file 75C:\Program Files\Microsoft Visual Studio\VC98\Bin\vcvars32.bat, 76to set environment variables, and then run: 77 78 `nmake /f gnuitar.mak' 79 80If all went fine, you should pickup the file gnuitar.exe 81in the folder gnuitar\Release\ or gnuitar\Release 586\ depending on 82which configuration did you chose. Now, copy the gnuitar executable 83somewhere where you are going to keep it, and copy the files: 84 85iconv.dll 86libgdk-0.dll 87libglib-2.0-0.dll 88libgmodule-2.0-0.dll 89libgtk-0.dll 90libintl-1.dll 91 92to the same folder as gnuitar.exe. Ready. 93 94Windows Installation - Binary Package 95===================================== 96 97 GNUitar binary package does not require 98specific install on Windows - just unzip the package and run gnuitar.exe. 99 100Linux - Install From RPM 101======================== 102 103 RPM stands for RedHat Package Manager. Just download rpm file 104from the GNUitar site, and issue shell command as root: 105 106rpm -i gnuitar-x.y.z.i386.rpm 107 108Linux - Create Your RPM 109======================= 110 111 You can create your own rpm package on Linux. To do so, you need 112first to install the package "rpm-build" from your Linux CD 113(first check does the /usr/src/redhat/ directory exist, if yes then you 114already have it installed). Then, copy the file gnuitar.spec 115to /usr/src/redhat/SPECS, and gnuitar-x.y.z.tar.gz to /usr/src/redhat/SOURCES. 116Changde dir to /usr/src/redhat/specs and issue 117 118rpm -bb gnuitar.spec 119 120This should create the rpm package somewhere under /usr/src/redhat/RPMS. 121 122Basic UNIX Installation - Compilation From Sources (standard GNU blah blah) 123=========================================================================== 124 125 These are generic installation instructions. 126 127 The `configure' shell script attempts to guess correct values for 128various system-dependent variables used during compilation. It uses 129those values to create a `Makefile' in each directory of the package. 130It may also create one or more `.h' files containing system-dependent 131definitions. Finally, it creates a shell script `config.status' that 132you can run in the future to recreate the current configuration, a file 133`config.cache' that saves the results of its tests to speed up 134reconfiguring, and a file `config.log' containing compiler output 135(useful mainly for debugging `configure'). 136 137 If you need to do unusual things to compile the package, please try 138to figure out how `configure' could check whether to do them, and mail 139diffs or instructions to the address given in the `README' so they can 140be considered for the next release. If at some point `config.cache' 141contains results you don't want to keep, you may remove or edit it. 142 143 The file `configure.in' is used to create `configure' by a program 144called `autoconf'. You only need `configure.in' if you want to change 145it or regenerate `configure' using a newer version of `autoconf'. 146 147The simplest way to compile this package is: 148 149 1. `cd' to the directory containing the package's source code and type 150 `./configure' to configure the package for your system. If you're 151 using `csh' on an old version of System V, you might need to type 152 `sh ./configure' instead to prevent `csh' from trying to execute 153 `configure' itself. 154 155 Running `configure' takes awhile. While running, it prints some 156 messages telling which features it is checking for. 157 158 2. Type `make' to compile the package. 159 160 3. Optionally, type `make check' to run any self-tests that come with 161 the package. 162 163 4. Type `make install' to install the programs and any data files and 164 documentation. 165 166 5. You can remove the program binaries and object files from the 167 source code directory by typing `make clean'. To also remove the 168 files that `configure' created (so you can compile the package for 169 a different kind of computer), type `make distclean'. There is 170 also a `make maintainer-clean' target, but that is intended mainly 171 for the package's developers. If you use it, you may have to get 172 all sorts of other programs in order to regenerate files that came 173 with the distribution. 174 175Compilers and Options 176===================== 177 178 Some systems require unusual options for compilation or linking that 179the `configure' script does not know about. You can give `configure' 180initial values for variables by setting them in the environment. Using 181a Bourne-compatible shell, you can do that on the command line like 182this: 183 CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure 184 185Or on systems that have the `env' program, you can do it like this: 186 env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure 187 188Compiling For Multiple Architectures 189==================================== 190 191 You can compile the package for more than one kind of computer at the 192same time, by placing the object files for each architecture in their 193own directory. To do this, you must use a version of `make' that 194supports the `VPATH' variable, such as GNU `make'. `cd' to the 195directory where you want the object files and executables to go and run 196the `configure' script. `configure' automatically checks for the 197source code in the directory that `configure' is in and in `..'. 198 199 If you have to use a `make' that does not supports the `VPATH' 200variable, you have to compile the package for one architecture at a time 201in the source code directory. After you have installed the package for 202one architecture, use `make distclean' before reconfiguring for another 203architecture. 204 205Installation Names 206================== 207 208 By default, `make install' will install the package's files in 209`/usr/local/bin', `/usr/local/man', etc. You can specify an 210installation prefix other than `/usr/local' by giving `configure' the 211option `--prefix=PATH'. 212 213 You can specify separate installation prefixes for 214architecture-specific files and architecture-independent files. If you 215give `configure' the option `--exec-prefix=PATH', the package will use 216PATH as the prefix for installing programs and libraries. 217Documentation and other data files will still use the regular prefix. 218 219 In addition, if you use an unusual directory layout you can give 220options like `--bindir=PATH' to specify different values for particular 221kinds of files. Run `configure --help' for a list of the directories 222you can set and what kinds of files go in them. 223 224 If the package supports it, you can cause programs to be installed 225with an extra prefix or suffix on their names by giving `configure' the 226option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 227 228Optional Features 229================= 230 231 Some packages pay attention to `--enable-FEATURE' options to 232`configure', where FEATURE indicates an optional part of the package. 233They may also pay attention to `--with-PACKAGE' options, where PACKAGE 234is something like `gnu-as' or `x' (for the X Window System). The 235`README' should mention any `--enable-' and `--with-' options that the 236package recognizes. 237 238 For packages that use the X Window System, `configure' can usually 239find the X include and library files automatically, but if it doesn't, 240you can use the `configure' options `--x-includes=DIR' and 241`--x-libraries=DIR' to specify their locations. 242 243Specifying the System Type 244========================== 245 246 There may be some features `configure' can not figure out 247automatically, but needs to determine by the type of host the package 248will run on. Usually `configure' can figure that out, but if it prints 249a message saying it can not guess the host type, give it the 250`--host=TYPE' option. TYPE can either be a short name for the system 251type, such as `sun4', or a canonical name with three fields: 252 CPU-COMPANY-SYSTEM 253 254See the file `config.sub' for the possible values of each field. If 255`config.sub' isn't included in this package, then this package doesn't 256need to know the host type. 257 258 If you are building compiler tools for cross-compiling, you can also 259use the `--target=TYPE' option to select the type of system they will 260produce code for and the `--build=TYPE' option to select the type of 261system on which you are compiling the package. 262 263Sharing Defaults 264================ 265 266 If you want to set default values for `configure' scripts to share, 267you can create a site shell script called `config.site' that gives 268default values for variables like `CC', `cache_file', and `prefix'. 269`configure' looks for `PREFIX/share/config.site' if it exists, then 270`PREFIX/etc/config.site' if it exists. Or, you can set the 271`CONFIG_SITE' environment variable to the location of the site script. 272A warning: not all `configure' scripts look for a site script. 273 274Operation Controls 275================== 276 277 `configure' recognizes the following options to control how it 278operates. 279 280`--cache-file=FILE' 281 Use and save the results of the tests in FILE instead of 282 `./config.cache'. Set FILE to `/dev/null' to disable caching, for 283 debugging `configure'. 284 285`--help' 286 Print a summary of the options to `configure', and exit. 287 288`--quiet' 289`--silent' 290`-q' 291 Do not print messages saying which checks are being made. To 292 suppress all normal output, redirect it to `/dev/null' (any error 293 messages will still be shown). 294 295`--srcdir=DIR' 296 Look for the package's source code in directory DIR. Usually 297 `configure' can determine that directory automatically. 298 299`--version' 300 Print the version of Autoconf used to generate the `configure' 301 script, and exit. 302 303`configure' also accepts some other, not widely useful, options. 304