This is the mail archive of the cygwin-developers mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
The attached script helps automate the process, for us duffers, of building a cygwin DLL from CVS and preparing to install it. To use the script, checkout winsup from CVS: $ cvs -z3 -d:pserver:sources.redhat.com:/cvs/src co winsup NOTE: Until some form is accepted into mingw CVS, you'll also need to manually apply the following patch: http://cygwin.com/ml/cygwin-patches/2009-q4/msg00124.html $ cd src/winsup $ zcat mingw-destdir.patch4.gz | patch -p0 $ cd ../.. Uncompress and copy the script into the src/winsup/cygwin directory, and then execute it: $ src/winsup/cygwin/cygdll-build almostall This will configure, compile, install into a destination directory, and create pseudo-installation packages. You can then use $ src/winsup/cygwin/cygdll-build deploy to install the new package (mostly; you'll still need to then shut down all cygwin processes, and manually move the new cygwin1.dll into place. See the --help output). For convenience, you can also invoke the script thru a symbolic link (not a hardlink), so long as the real file actually resides in the winsup/cygwin/ subdirectory of your CVS checkout (which need not be named "src"). The script is very flexible; there is a -d debug mode that configures/builds with appropriate options for a debuggable DLL. Also, you can pass any VARIABLE=VALUE argument, and it will be passed on to the configure and make commands. Usage: cygdll-build [OPTIONS] COMMAND [COMMAND2 [...]] [VAR=VAL ...] COMMAND may be one or more of the following: conf configure for building, in compile build install install into a DESTDIR, <autodetect>/src-inst. Note that <autodetect>/src-inst/usr <autodetect>/src-inst/etc will be removed first. package create a binary package deploy install the cygwin binary package into /usr. You may need to run this step as Administrator. You WILL need to manually stop all cygwin processes, and copy bin/cygwin1-<DATE>.dll to bin/cygwin1.dll, and bin/cygwin1-<DATE>.dbg to bin/cygwin1.dbg. You may also need to do the same for the two bin/cyglsa* dlls, and then reboot -- but only if you use them. deployall installs the cygwin binary package as well as the w32api and mingw-runtime binary packages. almostall run all of the above, excluding deploy all run all of the above, including deploy <func> If ~/.cygdll-buildrc defines a function <func>, specifying its name as COMMAND will invoke the function (with no arguments) OPTIONS may be: --help|-h|-? display this help --version|-v display version information -d build debug version: CFLAGS="-O0 -ggdb3" for all commands, and --enable-debugging if 'conf', -n dry-run -b DIR build in 'DIR' rather than 'src-build' [*] -i DIR install to 'DIR' rather than 'src-inst' [*] However, the default settings should be sufficient for most folks just trying -- perhaps for their first time -- to build a cygwin DLL from source. A lot of ideas were taken from cygport, and the core settings used in the default build were taken from Dave Korn's recipe. Enjoy! -- Chuck
Attachment:
cygdll-build.gz
Description: application/gzip
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |