Scripts: Difference between revisions
m (→Building) |
mNo edit summary |
||
(45 intermediate revisions by 3 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 | ||
* src/'''findhacks.sh''' - finds defines and ifdefs that perhaps can be removed. also finds printf-style output that perhaps shouldnt be there | * 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 | * '''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 | * 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 == | == 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/'''mkdoxy.sh''' - main script to create doxygen documentation. contains a lot of magic to create nicely linked output | ||
** doc/ | ** doc/'''src2doxy.sh''' | ||
** doc/ | ** 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''') | ||
* src/resid/samp2src.pl - generate tables as c-arrays | * '''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) | |||
<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: document and check these:'' | |||
<pre> | |||
./build/android/build-android.sh | ./build/android/build-android.sh | ||
./build/android/push-roms.sh | ./build/android/push-roms.sh | ||
./build/ | ./build/beos/intel-build-sdl.sh | ||
./build/beos/ppc-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 | ||
./cmake-bootstrap.sh | |||
./src/buildtools/bin2c.sh | |||
./src/buildtools/convert_owcc_libs.sh -- OpenWatcom? Probably can delete this | |||
./src/buildtools/gensvnversion.sh | ./src/buildtools/gensvnversion.sh | ||
./src/buildtools/ | ./src/buildtools/od2c.sh | ||
./src/buildtools/palette2c.sh | ./src/buildtools/palette2c.sh | ||
./src/arch/android/AnVICE/clean.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/make-bindist_win32.sh | ||
./src/arch/gtk3/vice-launcher.sh | |||
./src/arch/gtk3/x11-launcher.sh | |||
./src/arch/sdl/ | ./src/arch/sdl/macOS-ui-runtime.sh | ||
./src/arch/sdl/make-bindist_amiga.sh | ./src/arch/sdl/make-bindist_amiga.sh | ||
./src/arch/sdl/make-bindist_beos.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 | |||
</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