gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnustep-make source-distribution.make


From: Nicola Pero
Subject: gnustep-make source-distribution.make
Date: Thu, 22 Nov 2001 02:19:40 +0000 (GMT)

Hi

I just finished rewriting gnustep-make's source-distribution.make
... merging and generalizing my jigs make-release script and the rules
used by Adam to make releases of the gnustep core packages ...

I thought I would write a short email explaining how to use the facilities
provided ... otherwise nobody knows about them.  Basically, they allow you
to generate .tar.gz ready for distribution with no effort.

I'll take JIGS as an example.

In your `package', you have many GNUmakefiles.  Your `package' might
include libraries, tools, applications ... for example in JIGS (JIGS is a
`package'), we have a set of Java classes to be compiled/JNIfyied (basic
classes in gnu/gnustep/java and gnu/gnustep/base), we have an Objective-C
library (libgnustep-java.so), a C library (libgnustep-java-loader.so), an
Objective-C tool (WrapCreator), documentation ... etc ... each of these
subprojects has its own GNUmakefile.

but you have a top-level GNUmakefile ... the one which runs the other ones
as subprojects.

In this top-level GNUmakefile you can set variables used to generate a
.tar.gz for the whole package or rpm files or such.

For example, in JIGS I set in the top-level GNUmakefile:

PACKAGE_NAME = jigs
VERSION = 1.5.3
CVS_MODULE_NAME = java
CVS_FLAGS = -d :pserver:address@hidden:/cvsroot/gnustep -z3

this is all what you need to get `release' facilities (you can normally
leave out the CVS_FLAGS if you normally set up your environment so that
CVS simply works ... I force them manually because in the environment I
have CVS write access set up but I don't want scripts/makefiles to run cvs
commands with write access ... as a safety measure I want to force them to
always use read-only access).

Typing `make tgz' in the directory where there is the top-level
GNUmakefile will cause gnustep-make to:

 * run `make distclean' to dist-clean your source tree;

 * create a jigs-1.5.3.tar.gz file in the ../ directory, ready
   for distribution, by creating a tar archive with the contents 
   of the directory and all subdirs (when jigs-1.5.3.tar.gz is 
   uncompressed, it will expand to a jigs-1.5.3/ directory with 
   the contents of the current dir).

(of course to have `make tgz' work you only need PACKAGE_NAME and VERSION,
you don't need CVS_MODULE_NAME and CVS_FLAGS).

Typing `make cvs-snapshot' in the directory where there is the top-level 
GNUmakefile will cause gnustep-make to:

 * run `cvs -d :pserver:xxxetcxxx export -D now java' to get the module
   clean from CVS - as it is now - ready to be released;

 * create a jigs-1.5.3.tar.gz file in the ./ directory, ready for
   distribution, by creating a tar archive with the contents of the 
   source tree exported from CVS (again, uncompressing that will
   generate the pretty jigs-1.5.3/ directory with the results of 
   cvs export -D now java in it).

If you try using these features, let me know if they don't work and/or of
any problem/suggestions/comments.  I think they are quite handy ... you
update the VERSION in the top-level GNUmakefile, then type 'make
cvs-snapshot', and that's it - your new .tar.gz release is ready.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]