Scripts: Difference between revisions

From vice-emu
Jump to navigation Jump to search
(30 intermediate revisions by 2 users not shown)
Line 2: Line 2:


== Maintenance ==
== 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
* '''checkactivity.sh''' - creates some statistics from the svn log
Line 13: Line 14:


== Building Documentation ==
== Building Documentation ==
These scripts are used by the buildsystem when building the documentation.


=== User Manual ===
=== User Manual ===


* doc/'''fixdox.sh''' - fix up the texi file for proper generation of the final document
* doc/'''fixdox.sh''' - fix up the texi file for proper generation of the final document
* doc/'''t2h.pl''' - texi2html converter which also generates the files needed for chm creation
* doc/html/'''texi2html''' - texi2html converter


=== Sourcecode (Doxy) ===
=== Sourcecode (Doxy) ===
Line 24: Line 26:
** doc/'''src2doxy.sh'''
** doc/'''src2doxy.sh'''
** doc/'''txt2doxy.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 ==
== 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
* ./src/buildtools/'''geninfocontrib_h.sh''' - extracts the team list(s) from vice.texi and inserts into infocontrib.h, index.html, AUTHORS, README
* '''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/'''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: Frankenvice scripts were moved into `./frankenvice` and we also have a `./docker` subdir now
* 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 ==


several scripts need to be updated to deal with the proper encoding of "international" characters (with accents in particular)
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)
* ./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'''
* 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
* ./doc/'''Makefile'''
** '''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:


* ./src/buildtools/'''geninfocontrib_h.sh''' (encoding is checked in src/Makefile)
* ./doc/html/'''*.html'''
* ./doc/'''vice.texi''' (encoding is checked in doc/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 58: Line 95:
./build/android/push-roms.sh
./build/android/push-roms.sh


./src/vice-version.sh - generated by configure?
./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
./src/wrap-u-ar.sh
./src/sedinfocontrib_h.sh


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


./src/buildtools/bin2c.sh
./src/buildtools/bin2c.sh
Line 87: Line 128:
./src/arch/sdl/vice-launcher.sh
./src/arch/sdl/vice-launcher.sh
./src/arch/sdl/x11-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
</pre>
</pre>

Revision as of 18:55, 20 October 2020

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