diff options
Diffstat (limited to 'scripts/README')
-rw-r--r-- | scripts/README | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/scripts/README b/scripts/README deleted file mode 100644 index 701d577e4b..0000000000 --- a/scripts/README +++ /dev/null @@ -1,255 +0,0 @@ - - RPM support for BSPs - ==================== - -Introduction ------------- - -Building an rpm requires to have a tar archive of the sources, and a -rpm-spec files specifying the details of building. - -To support per bsp rpms, one rpm-spec is used per BSP. -Instead of writing one rpm-spec for each BSP, I have written a shell script -(mkspec) which generates one *.spec (rtems-<target_alias>-<bsp>.spec) per BSP -bsp from an rpm-spec template (rtems.spec.in). - -A second shell script (mkrpms) is a convienience script which invokes a -sequence of building rpms for several bsps. - - -mkbinutilspec -------------- - -mkbinutilspec takes two arguments: - -$1 ... the target_alias for binutils RPMs of this toolset - -Invoking mkbinutilspec will generate a <target_alias>-binutils.spec either in - - /usr/src/packages/SPECS (SuSE convention) or - /usr/src/redhat/SPECS (Redhat convention) or - /usr/src/SPECS - -Eg. ./mkbinutilspec sparc-rtems generates - -On SuSE-6.2: /usr/src/packages/SPECS/sparc-rtems-binutils.spec -On RedHat 6.0: /usr/src/redhat/SPECS/sparc-rtems-binutils.spec - -mkgccnewlibspec ---------------- - -mkgccnewlibspec takes two arguments: - -$1 ... the target_alias for the gcc/newlib RPMs of this toolset - -Invoking mkgccnewlibspec will generate a <target_alias>-gccnewlibs.spec -either in: - - /usr/src/packages/SPECS (SuSE convention) or - /usr/src/redhat/SPECS (Redhat convention) or - /usr/src/SPECS - -Eg. ./mkgccnewlibspec sparc-rtems generates - -On SuSE-6.2: /usr/src/packages/SPECS/sparc-rtems-gcc_newlib.spec -On RedHat 6.0: /usr/src/redhat/SPECS/sparc-rtems-gcc_newlib.spec - -mkgdbspec ---------- - -mkgdbspec takes two arguments: - -$1 ... the target_alias for the gdb RPMs of this toolset - -Invoking mkgdbspec will generate a <target_alias>-gdb.spec -either in: - - /usr/src/packages/SPECS (SuSE convention) or - /usr/src/redhat/SPECS (Redhat convention) or - /usr/src/SPECS - -Eg. ./mkgdbspec sparc-rtems generates - -On SuSE-6.2: /usr/src/packages/SPECS/sparc-rtems-gcc_newlib.spec -On RedHat 6.0: /usr/src/redhat/SPECS/sparc-rtems-gcc_newlib.spec - - -# XXX BSPs not tested yet by Joel -# -# mkbspspec -# --------- -# -# mkbspspec takes two arguments: -# $1 ... the target_alias this bsp belongs to -# $2 ... the bsp to be built -# -# Invoking mkbspspec will generate a rtems-<target_alias>-<bsp>.spec either in -# /usr/src/packages/SPECS (SuSE convention) or -# /usr/src/redhat/SPECS (Redhat convention) or -# /usr/src/SPECS -# -# Eg. ./mkspec gensh1 sh-rtemself generates -# /usr/src/packages/SPECS/rtems-sh-rtemself-gensh1.spec on SuSE-6.2. - -mkspec ---------- - -mkspec takes two arguments: - -$1 ... the target_alias for the RPMs composing this toolset -$2 ... the bsp to be built - -Invoking mkspec will generate a set of spec files either in: - - /usr/src/packages/SPECS (SuSE convention) or - /usr/src/redhat/SPECS (Redhat convention) or - /usr/src/SPECS - -Eg. ./mkspec sparc-rtems erc32 generates - -On SuSE-6.2: /usr/src/packages/SPECS/sparc-rtems-binutils.spec - /usr/src/packages/SPECS/sparc-rtems-gcc_newlib.spec - /usr/src/packages/SPECS/sparc-rtems-gdb.spec -On RedHat 6.0: /usr/src/packages/SPECS/sparc-rtems-binutils.spec - /usr/src/packages/SPECS/sparc-rtems-gcc_newlib.spec - /usr/src/packages/SPECS/sparc-rtems-gdb.spec - - -Building binutils-rpms ----------------------- - -0. Login as root. - -1. Install a tarball of the various tool sources (with the -version number attached!) to /usr/src/[packages|redhat]/SOURCES - - cd /usr/src/[packages|redhat]/SOURCES - cp .../binutils-<VERSION> . - cp .../binutils-<VERSION>-rtems-<DATE>.diff . - -2. Generate and install the required rpm-spec file[s] - -cd rtems-<VERSION>/scripts/ -mkbinutilspec <target_alias> - -where target_alias is of the form sparc-rtems or sh-rtems-elf. - -3. Build the rpms - -Building a binary rpm: - -rpm -bb /usr/src/[packages|redhat]/SPECS/rtems-<target_alias>-binutils.spec - -Building a source and binary rpm -rpm -ba /usr/src/[packages|redhat]/SPECS/rtems-<target_alias>-binutils.spec - -XXX Note: a BSP's src.rpm contains its spec-file and the tar-archive of the -sources (approx. 4-5MB per BSP). - -Building TOOL-rpms ------------------- - -0. Login as root. - -1. Install a tarball of the various tool sources (with the -version number attached!) to /usr/src/[packages|redhat]/SOURCES - - cd /usr/src/[packages|redhat]/SOURCES - cp .../binutils-<VERSION> . - cp .../gcc-<VERSION> . - cp .../newlib-<VERSION> . - -2. Generate and install the required rpm-spec file[s] - -cd rtems-<VERSION>/scripts/ -mktoolspec <target_alias> - -3. Build the rpms - -Building a binary rpm: -rpm -bb /usr/src/[packages|redhat]/SPECS/rtems-<target_alias>.spec - -Building a source and binary rpm -rpm -ba /usr/src/[packages|redhat]/SPECS/rtems-<target_alias>.spec - -XXX Note: a BSP's src.rpm contains its spec-file and the tar-archive of the -sources (approx. 4-5MB per BSP). - -Building BSP-rpms ------------------ - -0. Login as root. - -1. Install a tarball of RTEMS's sources (with version number attached!) to -/usr/src/[packages|redhat]/SOURCES -Eg. -tar czvf /usr/src/packages/SOURCES/rtems-<VERSION>.tar.gz rtems-<VERSION> - -2. Generate and install the required rpm-spec file[s] -cd rtems-<VERSION>/scripts/ -mkspec <bsp> <target_alias> - -3. Build the rpms -Building a binary rpm: -rpm -bb /usr/src/[packages|redhat]/SPECS/rtems-<target_alias>-<bsp>.spec - -Building a source and binary rpm -rpm -ba /usr/src/[packages|redhat]/SPECS/rtems-<target_alias>-<bsp>.spec - -Note: a BSP's src.rpm contains its spec-file and the tar-archive of the -sources (approx. 4-5MB per BSP). - -Canadian Cross RPMS -------------------- -Normally one uses a GNU/Linux host computer to produce RPMs that are -to be installed and run on another GNU/Linux host computer. When -building Canadian Cross RPMs, we build *-rtems tools that are to be -installed on a non-GNU/Linux host. - -To build cygwin-rpms on a GNU/Linux host, you will to have a GNU/Linux -> -i386-cygwin cross-toolset installed and in your PATH before executing the -following commands: - - cd scripts - ./configure --build=`../config.guess` --host=i386-cygwin \ - --target=<target> - make - rpm --target=<i386-cygwin> -b[b|a] binutils/<target>-....spec - -Known Bugs/Deficiencies ------------------------ - -* All files mentioned in here are in its early infancy ;-) - -* Building for a single bsp requires an own copy of the source tree inside -rpm's build directory. -* Building inside the RTEMS source tree doesn't work. -* Dependencies on toolchain-rpms not yet supported in rtems.spec.in. -* Installing multiple binary bsp rpms for the same target can cause -warnings from rpm, because these bsp-rpms share files. -* rtems.spec.in is prepared for rpm relocation support, but RTEMS is not -relocatible (yet?) -* rtems.spec.in deserves to be extended (description, authors etc) -* The final packaging stage to build a binary rpm takes an awful lot of -time - deserves to be investigated. -* Some RTEMS's cross executables (eg. hello.exe for sparc-rtems/erc32) cause -warnings from rpm and/or objdump. AFAIS, this is a bug in rpm. -* Probably many more ... - -* Last but not least: RTEMS should be split. - -Remarks -------- -* It would make sense to split RTEMS host/cross-tools and files depending on -the target only (<target_alias>/make/*.cfg -- Whow, RTEMS really has files -which depend on the target only :) into separate rpms. -* Instead of using a single rpm-spec for each bsp, RTEMS could also use a -single rpm-spec for all (or at least a given subset of all) bsps of a target. -* rpm -b[b|a] leaves its built trees unpacked in -/usr/src/[packages|redhat]/BUILD. Therefore you will rather soon run out of disc -space if not removing them. (Use rpm --clean -b[a|b] for cleaning them up -automatically after building) -* The size of binary rpms can differ up to one magnitude depending on the -target/bsp (eg. sh-rtems/gensh1 ~10MB vs. sh-rtemself/gensh1 ~32MB) - -Ralf Corsepius, 1999/10/14 |