Scripts: Difference between revisions

From vice-emu
Jump to navigation Jump to search
mNo edit summary
 
(20 intermediate revisions by 3 users not shown)
Line 30: Line 30:
These scripts are used to generate/update the team member list. Also used when building the binaries
These scripts are used to generate/update the team member list. Also used when building the binaries


* ./src/buildtools/'''geninfocontrib_h.sh''' - extracts the team list(s) from vice.texi and inserts into infocontrib.h, index.html, AUTHORS, README
* ./src/buildtools/'''geninfocontrib_h.sh''' - extracts the team list(s) from vice.texi and inserts into infocontrib.h, index.html, README
** '''FIXME:''' there is a hardcoded link to the last page of the documentation (containing the full contributors list). we should make this update automatically
** '''FIXME:''' there is a hardcoded link to the last page of the documentation (containing the full contributors list). we should make this update automatically
* ./src/'''sedinfocontrib_h.sh''' - wrapperscript for sed, needed for macOS
* ./src/'''sedinfocontrib_h.sh''' - wrapperscript for sed, needed for macOS
Line 36: Line 36:
== Building ==
== Building ==


* '''autogen.sh''' - generates the configure script
* '''autogen.sh''' - generates the configure script (from '''configure.ac''')
* '''install-sh''' - install helper
* '''mkinstalldirs''' - install helper, creates a directory hirarchy
* '''config.rpath''' - get linker flags
* '''config.guess''' - guess system name
* src/resid/'''samp2src.pl''' - generate tables as c-arrays
* src/resid/'''samp2src.pl''' - generate tables as c-arrays
* build/mingw/'''vice-rpm-to-deb.sh''' - convert Fedora mingw64-*.rpm packages to .deb for use with a Debian-based cross-compiler for the Gtk3 UI
* '''build/mingw/frankenvice/vice-rpm-to-deb.sh''' - convert Fedora mingw64-*.rpm packages to .deb for use with a Debian-based cross-compiler for the Gtk3 UI
** FIXME: Frankenvice scripts were moved into `./frankenvice` and we also have a `./docker` subdir now
* '''build/mingw/frankenvice/frankenvice-install.sh''' - install all required Fedora mingw64 packages required for cross-compiling, on Debian, the Gtk3 UI for Win64. Uses the `vice-rpm-to-deb.sh` script and uses an external file `rpm-packages.txt` to determine which Fedora packages to download, convert and install. Requires 'sudo'; best to open the script file to see what it does and how to use it, or run it with --help to get an idea.
* FIXME: we also have a `build/mingw/docker` subdir now, someone check document those scripts
 
 
=== generated scripts ===
 
* '''configure''' - the actual configure script
* '''compile''' - Wrapper for compilers which do not understand '-c -o'
* '''depcomp''' - compile a program generating dependencies as side-effects
* '''missing''' - Common wrapper for a few potentially missing GNU programs.
* '''ylwrap''' - wrapper for lex/yacc invocations.
* src/'''sedinfocontrib_h.sh''' - copied from src/buildtools/'''sedinfocontrib_h.sh'''
* ./src/'''vice-version.sh''' - prints vice version (generated by configure?)


== encoding mess ==
== encoding mess ==
Line 48: Line 64:


Background: we want all Documentation, including the team-member list, in one central place so we only have to update one thing.  
Background: we want all Documentation, including the team-member list, in one central place so we only have to update one thing.  
This place is '''vice.texi'''. From that various other files are being generated, in particular '''vice.pdf''', the '''html documentation''', and the team list in '''index.html''', '''infocontrib.h''', '''README''' and '''AUTHORS'''.
This place is '''vice.texi'''. From that various other files are being generated, in particular '''vice.pdf''', the '''html documentation''', and the team list in '''index.html''', '''infocontrib.h''', '''README'''.


* ./src/buildtools/'''geninfocontrib_h.sh''' (already handles é and \'e for index.html output)
* ./src/buildtools/'''geninfocontrib_h.sh''' (already handles é and \'e for index.html output)
** '''TODO:''' handle infocontrib.h, AUTHORS, README output
** '''TODO:''' handle infocontrib.h, AUTHORS, README output
** '''TODO:''' handle some more common characters in names
* doc/'''fixdox.sh'''
* doc/'''fixdox.sh'''
** '''TODO:''' clean up, handle conversion of texi tags (\'e) for pdf
** '''TODO:''' clean up, handle conversion of texi tags (\'e) for pdf
* doc/'''t2h.pl'''
** '''TODO:''' clean up, handle conversion of texi tags (\'e) for html
* doc/html/'''texi2html'''
* doc/html/'''texi2html'''
** '''TODO:''' clean up, handle conversion of texi tags (\'e) for html
** '''TODO:''' clean up, handle conversion of texi tags (\'e) for html
Line 61: Line 76:
** '''TODO:''' clean up, move all remaining sed magic to the respective scripts
** '''TODO:''' clean up, move all remaining sed magic to the respective scripts


=== iso-8859-1 ===
=== iso-8859-15 ===


for the time being, the following files MUST be iso-8859-1, or things will break:
Until the end of time, the following files MUST be iso-8859-15, or things will break:


* ./doc/'''vice.texi''' (encoding is checked in doc/Makefile)
* ./doc/html/'''*.html'''
* ./src/buildtools/'''geninfocontrib_h.sh''' (encoding is checked in src/Makefile)
* ./doc/'''vice.texi''' (encoding is checked* in doc/Makefile)
* ./src/buildtools/'''geninfocontrib_h.sh''' (encoding is checked* in src/Makefile)
 
<nowiki>*</nowiki> Actually we detect encoding using <code>file --mime-encoding</code> which reports iso-8859-1 rather than iso-8859-15, don't worry about it.
 
If you need to use sed on one of these files, make sure LC_ALL=C


== TODO ==
== TODO ==
Line 80: Line 100:
./build/mingw/docker/build-vice.sh
./build/mingw/docker/build-vice.sh
./build/mingw/docker/dock-run.sh
./build/mingw/docker/dock-run.sh
./build/mingw/frankenvice/frankenvice-install.sh
./build/mingw/frankenvice/vice-rpm-to-deb.sh


./src/vice-version.sh - generated by configure?


./src/wrap-u-ar.sh
./src/wrap-u-ar.sh


cmake-bootstrap.sh
./cmake-bootstrap.sh


./src/buildtools/bin2c.sh
./src/buildtools/bin2c.sh
Line 120: Line 137:


</pre>
</pre>
[[Category:Developer]]
[[Category:TODO]]

Latest revision as of 19:46, 23 March 2023

There are a couple of scripts in the source tree that help with some tasks during development

Maintenance

These are scripts that are not used by the buildsystem, which means they may not follow the same (strict) rules

  • checkactivity.sh - creates some statistics from the svn log
  • src/findhacks.sh - finds defines and ifdefs that perhaps can be removed. also finds printf-style output that perhaps shouldnt be there
  • gtk3resources.py - finds resource definitions in the GTK3 ui

User Manual / Website

  • src/html/checklinks.sh - checks (internal and external) links in the html pages
  • doc/checkdoc.mak , checkdoc.c - extracts resources from the executables and compares with vice.texi

Building Documentation

These scripts are used by the buildsystem when building the documentation.

User Manual

  • doc/fixdox.sh - fix up the texi file for proper generation of the final document
  • doc/html/texi2html - texi2html converter

Sourcecode (Doxy)

  • doc/mkdoxy.sh - main script to create doxygen documentation. contains a lot of magic to create nicely linked output
    • doc/src2doxy.sh
    • doc/txt2doxy.sh

Infocontrib

These scripts are used to generate/update the team member list. Also used when building the binaries

  • ./src/buildtools/geninfocontrib_h.sh - extracts the team list(s) from vice.texi and inserts into infocontrib.h, index.html, README
    • FIXME: there is a hardcoded link to the last page of the documentation (containing the full contributors list). we should make this update automatically
  • ./src/sedinfocontrib_h.sh - wrapperscript for sed, needed for macOS

Building

  • autogen.sh - generates the configure script (from configure.ac)
  • install-sh - install helper
  • mkinstalldirs - install helper, creates a directory hirarchy
  • config.rpath - get linker flags
  • config.guess - guess system name
  • src/resid/samp2src.pl - generate tables as c-arrays
  • build/mingw/frankenvice/vice-rpm-to-deb.sh - convert Fedora mingw64-*.rpm packages to .deb for use with a Debian-based cross-compiler for the Gtk3 UI
  • build/mingw/frankenvice/frankenvice-install.sh - install all required Fedora mingw64 packages required for cross-compiling, on Debian, the Gtk3 UI for Win64. Uses the `vice-rpm-to-deb.sh` script and uses an external file `rpm-packages.txt` to determine which Fedora packages to download, convert and install. Requires 'sudo'; best to open the script file to see what it does and how to use it, or run it with --help to get an idea.
  • FIXME: we also have a `build/mingw/docker` subdir now, someone check document those scripts


generated scripts

  • configure - the actual configure script
  • compile - Wrapper for compilers which do not understand '-c -o'
  • depcomp - compile a program generating dependencies as side-effects
  • missing - Common wrapper for a few potentially missing GNU programs.
  • ylwrap - wrapper for lex/yacc invocations.
  • src/sedinfocontrib_h.sh - copied from src/buildtools/sedinfocontrib_h.sh
  • ./src/vice-version.sh - prints vice version (generated by configure?)

encoding mess

several scripts need to be updated to deal with the proper encoding of "international" characters (with accents in particular)

Goal: as much files as possible should be completely agnostic of any encoding. in other words: not use any special characters where the encoding matters.

Background: we want all Documentation, including the team-member list, in one central place so we only have to update one thing. This place is vice.texi. From that various other files are being generated, in particular vice.pdf, the html documentation, and the team list in index.html, infocontrib.h, README.

  • ./src/buildtools/geninfocontrib_h.sh (already handles é and \'e for index.html output)
    • TODO: handle infocontrib.h, AUTHORS, README output
    • TODO: handle some more common characters in names
  • doc/fixdox.sh
    • TODO: clean up, handle conversion of texi tags (\'e) for pdf
  • doc/html/texi2html
    • TODO: clean up, handle conversion of texi tags (\'e) for html
  • ./doc/Makefile
    • TODO: clean up, move all remaining sed magic to the respective scripts

iso-8859-15

Until the end of time, the following files MUST be iso-8859-15, or things will break:

  • ./doc/html/*.html
  • ./doc/vice.texi (encoding is checked* in doc/Makefile)
  • ./src/buildtools/geninfocontrib_h.sh (encoding is checked* in src/Makefile)

* Actually we detect encoding using file --mime-encoding which reports iso-8859-1 rather than iso-8859-15, don't worry about it.

If you need to use sed on one of these files, make sure LC_ALL=C

TODO

  • TODO: document and check these:
./build/android/build-android.sh
./build/android/push-roms.sh

./build/beos/intel-build-sdl.sh
./build/beos/ppc-build-sdl.sh

./build/mingw/docker/build-vice.sh
./build/mingw/docker/dock-run.sh


./src/wrap-u-ar.sh

./cmake-bootstrap.sh

./src/buildtools/bin2c.sh
./src/buildtools/convert_owcc_libs.sh -- OpenWatcom? Probably can delete this
./src/buildtools/gensvnversion.sh
./src/buildtools/od2c.sh
./src/buildtools/palette2c.sh

./src/arch/android/AnVICE/clean.sh

./src/arch/gtk3/generate-icons-list.sh
./src/arch/gtk3/macOS-ui-runtime.sh
./src/arch/gtk3/make-bindist_osx.sh
./src/arch/gtk3/make-bindist_win32.sh
./src/arch/gtk3/vice-launcher.sh
./src/arch/gtk3/x11-launcher.sh

./src/arch/sdl/macOS-ui-runtime.sh
./src/arch/sdl/make-bindist_amiga.sh
./src/arch/sdl/make-bindist_beos.sh
./src/arch/sdl/make-bindist_osx.sh
./src/arch/sdl/make-bindist_win32.sh
./src/arch/sdl/vice-launcher.sh
./src/arch/sdl/x11-launcher.sh

./src/arch/shared/macOS-common-runtime.sh
./src/arch/shared/macOS-launcher.sh
./src/arch/shared/macOS-redirect-launcher.sh
./src/arch/shared/macOS-wrap-ar.sh
./src/arch/shared/macOS-wrap-ranlib.sh
./src/arch/shared/make-bindist_osx.sh