gnustep-dev
[Top][All Lists]
Advanced

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

file list generation implemented


From: Nicola Pero
Subject: file list generation implemented
Date: Fri, 12 Jan 2001 18:23:41 +0000 (GMT)

I have finished the implementation of file list generation, and committed
to CVS.

In an arbitrary project, typing 

'make install' 

should now build the project (all should be exactly the same as before).

Typing

'make filelist=yes install'

will instead build the list of files the project would install.  The file
list is created as the file 'file-list' in the top level directory, and
can/should (never actually tested it :-) be include directly into rpm's
spec files - and possibly the equivalent deb's files.

Still to do: further testing.  Most makefiles, to fully be able to
generate file lists correctly, should install everything by using only:

INSTALL_DATA, (to install a file/files)
INSTALL_PROGRAM, (to install an executable/executables)
INSTALL_COMPLETE_DIR (if you want to install a complete directory as it
happens for a .bundle or a .app),
INSTALL_LN_S (to create a link in the installation directories, such as
when you link libobjc.so.1 --> libobjc.so.1.0.0)
REMOVE_INSTALLED_LN_S (if you want to remove the old link before replacing 
it with a new one)

I think most of the guile interface, test framework etc will need to be
fixed for this.  <Anyway it's encouraging that the filelist for the whole
of JIGS (java classes + a library with a sublibrary + associated headers +
wrapper (command line) tool + associated makefiles + documentation) can be
generated correctly with a single `make filelist=yes install' command.>

A tiny missing thing - wobundle.make, woapp.make etc use 

$(TAR) ch --exclude=CVS --to-stdout $(BUNDLE_DIR_NAME) | (cd 
$(BUNDLE_INSTALL_DIR); $(TAR) xf -)

to install themselves, rather than 

$(TAR) cf - $(BUNDLE_DIR_NAME) | (cd $(BUNDLE_INSTALL_DIR); $(TAR) xf -)

as bundle.make.  I think we should decide for one of the two, and
implement it in install-complete-dir.sh.in.  For the moment, I didn't
touch wobundle.make, woapp.make etc to avoid doing something wrong - but
they need to be updated to allow file list generation anyway.

--

To generate efficiently specfiles/rpms, I suppose the best way to go would
be at this point to modify the code in rpm.make to use the file list
generated in this way.

One thing to consider is that we are not forced to put everything in
makefiles.  Once the makefiles can output the file list, the rest
(specifile, the correponding deb files, eventually directly rpms and debs)
can be built with traditional shell scripts if that is easier.

Unless packages built with debug=yes vs packages built with debug=no are
easier to manage if the thing is done with makefile rules.




reply via email to

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