# fss-0002
# cd extra/locale/ && find charmaps -name "*.pairs" > codesets.txt
# cp extra/locale/LOCALES extra/locale/locales.txt
#
# ./Rules.mak:123:UCLIBC_LDSO_NAME := ld-uClibc
# ./Rules.mak:126:UCLIBC_LDSO_NAME := ld-uClibc
# LDSO_BASE_FILENAME = ld-uClibc-insecure.so

first:
  cp -v ${PR}uc.conf-$version$uclibc_config_extension${uclibc_alternate_config}-host .config
  tkis_extract uClibc-locale 030818 extra/locale
  cp -vf $(find $AR -name 'uClibc-locale-030818.tgz') extra/locale
  cp -v ${PR}codesets.txt extra/locale/
  #cp -v ${PR}{codesets,locales}.txt extra/locale/
  #cp -v ${PR}{c8tables,uClibc_locale_data}.h extra/locale/
  #cp -v ${PR}locales.txt extra/locale/LOCALES
  sed -i -e 's|/etc/mtab|/proc/mounts|g' include/paths.h
  sed -i -e 's|/var/run/utmp|/var/log/utmp|g' include/paths.h
  sed -i -e 's|zcat |gzip -cd |' Makefile
  if [ -f extra/locale/Makefile.in ] ; then sed -i -e 's|zcat |gzip -cd |' extra/locale/Makefile.in ; fi
  sed -i -e 's|check_gcc,-Os|check_gcc|' test/Rules.mak Rules.mak
  sed -i -e 's|-Os ||' ldso/ldso/Makefile
  sed -i -e 's|#  include <libc-string_i386.h>||' include/string.h
  sed -i -e  's|(80)|(160)|' libc/inet/resolv.c
  sed -i -e 's|ld64-uClibc|ld-uClibc|g' Rules.mak
  sed -i -e 's|HOST_LOADLIBES   =|& -ltinfo|' extra/config/Makefile
  if [ -f libc/misc/internals/__uClibc_main.c ] ; then sed -i -e 's|#ifdef __UCLIBC_HAS___PROGNAME__|#if 0|' libc/misc/internals/__uClibc_main.c ; fi # for 0.9.30.1
  if [ -f libpthread/linuxthreads/sysdeps/i386/useldt.h ] ; then sed -i -e '/#include <sysdep.h>/d' libpthread/linuxthreads/sysdeps/i386/useldt.h ; fi # for 0.9.30.1
  make DEVEL_PREFIX=/usr RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include LINUX_HEADERS_PATH=${TC}include OPTIMIZATIONS="$CFLAGS" headers
  sed -i -e "s|__RUNTIME_PREFIX__ \"SCRIPT_ME_AWAY\"|__RUNTIME_PREFIX__ \"\"|g" include/bits/uClibc_config.h 
  sed -i -e "s|__DEVEL_PREFIX__ \"SCRIPT_ME_AWAY\"|__DEVEL_PREFIX__ \"/usr/\"|g" include/bits/uClibc_config.h 
  make DEVEL_PREFIX=/usr/ RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include LINUX_HEADERS_PATH=${TC}include OPTIMIZATIONS="$CFLAGS"
  rm -Rf include/asm include/asm-generic include/linux
  make DEVEL_PREFIX=/usr/ RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include install
  make DEVEL_PREFIX=/usr/ RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include LINUX_HEADERS_PATH=${TC}include OPTIMIZATIONS="$CFLAGS" headers install
  make DEVEL_PREFIX=/usr/ RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include LINUX_HEADERS_PATH=${TC}include OPTIMIZATIONS="$CFLAGS" -C utils
  cp -v utils/{ldconfig,ldd} /bin/
  if [[ -e utils/iconv ]] ; then cp -v utils/iconv /bin/ ; fi
  ldconfig
  rm -vf /lib/{Scrt1,crt1,crti,crtn}.o
  cp -vP lib/*.so.0 lib/*.o /lib/
  ln -vsf libc.so.0 /lib/libc.so
  ln -vsf libdl.so.0 /lib/libdl.so
  ln -vsf libm.so.0 /lib/libm.so
  ln -vsf libnsl.so.0 /lib/libnsl.so
  ln -vsf libpthread.so.0 /lib/libpthread.so
  ln -vsf libresolv.so.0 /lib/libresolv.so
  ln -vsf librt.so.0 /lib/librt.so
  ln -vsf libutil.so.0 /lib/libutil.so
  ln -vsf libc.so.0 /lib/libc.so
  ln -vsf libcrypt.so.0 /lib/libcrypt.so
  chmod ug+x /lib/{ld*-uClibc-,lib{dl,m,nsl,pthread,resolv,rt,uClibc,util,crypt,intl}}*
  mkdir -vp ${TC}lib/static/
  if [[ -d /usr/lib/ ]] ; then find /usr/lib/ -name '*.a' -exec mv -v '{}' ${TC}lib/static/ ';' ; fi
  find /lib/ -name '*.a' -exec mv -v '{}' ${TC}lib/static/ ';'
  if [[ -d /usr/include/ ]] ; then cp -vR /usr/include/ $TC ; fi
  rm -vRf /usr
  chgrp e_public /bin/{ldd,ldconfig}
  chmod o-rx /bin/{ldd,ldconfig}
  if [ -f /bin/iconv ] ; then chgrp e_public /bin/iconv ; chmod o-rx /bin/iconv ; fi
  touch /etc/ld.so.cache
  chgrp e_public /lib/{ld*-uClibc-*,lib{dl,m,nsl,pthread,resolv,rt,uClibc,util,crypt,intl},Scrt1.o,crt1.o,crti.o,crtn.o}* /etc/{timezone,ld.so.cache} /etc/group
  chmod o-rx /lib/{ld*-uClibc-*,lib{dl,m,nsl,pthread,resolv,rt,uClibc,util,crypt,intl},Scrt1.o,crt1.o,crti.o,crtn.o}* /etc/{timezone,ld.so.cache} /etc/group

  if [[ -f /lib/ld-uClibc.so.lds ]] ; then chgrp e_public /lib/ld-uClibc.so.lds ; fi
  if [[ -f /lib/ld-uClibc.so.lds ]] ; then chmod o-rx /lib/ld-uClibc.so.lds ; fi

  sed -i -e 's|/usr/bin/vi|/bin/vi|g' ${TC}include/paths.h
  sed -i -e 's|/usr/sbin/sendmail|/sbin/sendmail|g' ${TC}include/paths.h
  sed -i -e 's|/bin/sh|/bin/bash|g' ${TC}include/paths.h
  sed -i -e "s|/usr/bin:/bin:/usr/sbin:/sbin|/bin:/sbin:${TC}bin|g" ${TC}include/paths.h
  sed -i -e "s|/usr/bin:/bin|/bin:/sbin:${TC}bin|g" ${TC}include/paths.h

  echo -e "#ifndef _FENV_H\n#define _FENV_H 1\n\n#include <features.h>\n#include <bits/fenv.h>\n\n#endif" > ${TC}include/fenv.h

  #cp -v ${PR}stdio.h ${TO}include/
  #cp -v ${PR}uClibc_stdio.h ${TO}include/bits/

main:
  cp -v ${PR}uc.conf-$version$uclibc_config_extension$uclibc_alternate_config .config
  tkis_extract uClibc-locale 030818 extra/locale
  cp -vf $(find $AR -name 'uClibc-locale-030818.tgz') extra/locale
  cp -v ${PR}codesets.txt extra/locale/
  #cp -v ${PR}{codesets,locales}.txt extra/locale/
  #cp -v ${PR}{c8tables,uClibc_locale_data}.h extra/locale/
  #cp -v ${PR}locales.txt extra/locale/LOCALES
  sed -i -e 's|/etc/mtab|/proc/mounts|g' include/paths.h
  sed -i -e 's|/var/run/utmp|/var/log/utmp|g' include/paths.h
  sed -i -e 's|zcat |gzip -cd |' Makefile
  if [ -f extra/locale/Makefile.in ] ; then sed -i -e 's|zcat |gzip -cd |' extra/locale/Makefile.in ; fi
  sed -i -e 's|check_gcc,-Os|check_gcc|' test/Rules.mak Rules.mak
  sed -i -e 's|-Os ||' ldso/ldso/Makefile
  sed -i -e 's|#  include <libc-string_i386.h>||' include/string.h
  sed -i -e  's|(80)|(160)|' libc/inet/resolv.c
  sed -i -e 's|ld64-uClibc|ld-uClibc|g' Rules.mak
  sed -i -e 's|HOST_LOADLIBES   =|& -ltinfo|' extra/config/Makefile
  if [ -f libc/misc/internals/__uClibc_main.c ] ; then sed -i -e 's|#ifdef __UCLIBC_HAS___PROGNAME__|#if 0|' libc/misc/internals/__uClibc_main.c ; fi # for 0.9.30.1
  if [ -f libpthread/linuxthreads/sysdeps/i386/useldt.h ] ; then sed -i -e '/#include <sysdep.h>/d' libpthread/linuxthreads/sysdeps/i386/useldt.h ; fi # for 0.9.30.1
  make DEVEL_PREFIX=/usr RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include LINUX_HEADERS_PATH=${TC}include OPTIMIZATIONS="$CFLAGS" headers
  sed -i -e "s|__RUNTIME_PREFIX__ \"SCRIPT_ME_AWAY\"|__RUNTIME_PREFIX__ \"\"|g" include/bits/uClibc_config.h 
  sed -i -e "s|__DEVEL_PREFIX__ \"SCRIPT_ME_AWAY\"|__DEVEL_PREFIX__ \"/usr/\"|g" include/bits/uClibc_config.h 
  make DEVEL_PREFIX=/usr/ RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include LINUX_HEADERS_PATH=${TC}include OPTIMIZATIONS="$CFLAGS"
  rm -Rf include/asm include/asm-generic include/linux
  make DEVEL_PREFIX=/usr/ RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include install
  make DEVEL_PREFIX=/usr/ RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include LINUX_HEADERS_PATH=${TC}include OPTIMIZATIONS="$CFLAGS" headers install
  make DEVEL_PREFIX=/usr/ RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include LINUX_HEADERS_PATH=${TC}include OPTIMIZATIONS="$CFLAGS" -C utils
  cp -v utils/{ldconfig,ldd} /bin/
  if [[ -e utils/iconv ]] ; then cp -v utils/iconv /bin/ ; fi
  ldconfig
  rm -vf /lib/{Scrt1,crt1,crti,crtn}.o
  cp -vP lib/*.so.0 lib/*.o /lib/
  ln -vsf libc.so.0 /lib/libc.so
  ln -vsf libdl.so.0 /lib/libdl.so
  ln -vsf libm.so.0 /lib/libm.so
  ln -vsf libnsl.so.0 /lib/libnsl.so
  ln -vsf libpthread.so.0 /lib/libpthread.so
  ln -vsf libresolv.so.0 /lib/libresolv.so
  ln -vsf librt.so.0 /lib/librt.so
  ln -vsf libutil.so.0 /lib/libutil.so
  ln -vsf libc.so.0 /lib/libc.so
  ln -vsf libcrypt.so.0 /lib/libcrypt.so
  chmod ug+x /lib/{ld*-uClibc-,lib{dl,m,nsl,pthread,resolv,rt,uClibc,util,crypt,intl}}*
  mkdir -vp ${TC}lib/static/
  if [[ -d /usr/lib/ ]] ; then find /usr/lib/ -name '*.a' -exec mv -v '{}' ${TC}lib/static/ ';' ; fi
  find /lib/ -name '*.a' -exec mv -v '{}' ${TC}lib/static/ ';'
  if [[ -d /usr/include/ ]] ; then cp -vR /usr/include/ $TC ; fi
  rm -vRf /usr
  chgrp e_public /bin/{ldd,ldconfig}
  chmod o-rx /bin/{ldd,ldconfig}
  if [ -f /bin/iconv ] ; then chgrp e_public /bin/iconv ; chmod o-rx /bin/iconv ; fi
  touch /etc/ld.so.cache
  chgrp e_public /lib/{ld*-uClibc-*,lib{dl,m,nsl,pthread,resolv,rt,uClibc,util,crypt,intl},Scrt1.o,crt1.o,crti.o,crtn.o}* /etc/{timezone,ld.so.cache} /etc/group
  chmod o-rx /lib/{ld*-uClibc-*,lib{dl,m,nsl,pthread,resolv,rt,uClibc,util,crypt,intl},Scrt1.o,crt1.o,crti.o,crtn.o}* /etc/{timezone,ld.so.cache} /etc/group

  if [[ -f /lib/ld-uClibc.so.lds ]] ; then chgrp e_public /lib/ld-uClibc.so.lds ; fi
  if [[ -f /lib/ld-uClibc.so.lds ]] ; then chmod o-rx /lib/ld-uClibc.so.lds ; fi

  sed -i -e 's|/usr/bin/vi|/bin/vi|g' ${TC}include/paths.h
  sed -i -e 's|/usr/sbin/sendmail|/sbin/sendmail|g' ${TC}include/paths.h
  sed -i -e 's|/bin/sh|/bin/bash|g' ${TC}include/paths.h
  sed -i -e "s|/usr/bin:/bin:/usr/sbin:/sbin|/bin:/sbin:${TC}bin|g" ${TC}include/paths.h
  sed -i -e "s|/usr/bin:/bin|/bin:/sbin:${TC}bin|g" ${TC}include/paths.h

  echo -e "#ifndef _FENV_H\n#define _FENV_H 1\n\n#include <features.h>\n#include <bits/fenv.h>\n\n#endif" > ${TC}include/fenv.h

  #cp -v ${PR}stdio.h ${TO}include/
  #cp -v ${PR}uClibc_stdio.h ${TO}include/bits/

insecure:
  sed -i -e  's|\-rc3-git|-rc3|g' Rules.mak # temporary
  cp -v ${PR}uc.conf-$version$uclibc_config_extension-insecure .config
  tkis_extract uClibc-locale 030818 extra/locale
  cp -vf $(find $AR -name 'uClibc-locale-030818.tgz') extra/locale
  #cp -v ${PR}{codesets,locales}.txt extra/locale/
  #cp -v ${PR}{c8tables,uClibc_locale_data}.h extra/locale/
  #cp -v ${PR}locales.txt extra/locale/LOCALES
  sed -i -e 's|/etc/mtab|/proc/mounts|g' include/paths.h
  sed -i -e 's|/var/run/utmp|/var/log/utmp|g' include/paths.h
  sed -i -e 's|zcat |gzip -cd |' Makefile
  if [ -f extra/locale/Makefile.in ] ; then sed -i -e 's|zcat |gzip -cd |' extra/locale/Makefile.in ; fi
  sed -i -e 's|check_gcc,-Os|check_gcc|' test/Rules.mak Rules.mak
  sed -i -e 's|-Os ||' ldso/ldso/Makefile
  sed -i -e 's|#  include <libc-string_i386.h>||' include/string.h
  sed -i -e  's|(80)|(160)|' libc/inet/resolv.c
  sed -i -e 's|ld64-uClibc|ld-uClibc|g' Rules.mak
  sed -i -e 's|HOST_LOADLIBES   =|& -ltinfo|' extra/config/Makefile
  if [ -f libc/misc/internals/__uClibc_main.c ] ; then sed -i -e 's|#ifdef __UCLIBC_HAS___PROGNAME__|#if 0|' libc/misc/internals/__uClibc_main.c ; fi # for 0.9.30.1
  if [ -f libpthread/linuxthreads/sysdeps/i386/useldt.h ] ; then sed -i -e '/#include <sysdep.h>/d' libpthread/linuxthreads/sysdeps/i386/useldt.h ; fi # for 0.9.30.1
  make DEVEL_PREFIX=/usr RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include LINUX_HEADERS_PATH=${TC}include OPTIMIZATIONS="$CFLAGS" headers
  sed -i -e "s|__RUNTIME_PREFIX__ \"SCRIPT_ME_AWAY\"|__RUNTIME_PREFIX__ \"\"|g" include/bits/uClibc_config.h 
  sed -i -e "s|__DEVEL_PREFIX__ \"SCRIPT_ME_AWAY\"|__DEVEL_PREFIX__ \"/usr/\"|g" include/bits/uClibc_config.h 
  make DEVEL_PREFIX=/usr/ RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include LINUX_HEADERS_PATH=${TC}include OPTIMIZATIONS="$CFLAGS"
  rm -Rf include/asm include/asm-generic include/linux
  make DEVEL_PREFIX=/usr/ RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include install
  make DEVEL_PREFIX=/usr/ RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include LINUX_HEADERS_PATH=${TC}include OPTIMIZATIONS="$CFLAGS" headers install
  make DEVEL_PREFIX=/usr/ RUNTIME_PREFIX=/ MULTILIB_DIR=lib KERNEL_HEADERS=${TC}include CONFIG_KERNEL_HEADERS=${TC}include LINUX_HEADERS_PATH=${TC}include OPTIMIZATIONS="$CFLAGS" -C utils
  cp -v utils/{ldconfig,ldd} /bin/
  if [[ -e utils/iconv ]] ; then cp -v utils/iconv /bin/ ; fi
  ldconfig
  rm -vf /lib/{Scrt1,crt1,crti,crtn}.o
  cp -vP lib/*.so.0 lib/*.o /lib/
  ln -vsf libc.so.0 /lib/libc.so
  ln -vsf libdl.so.0 /lib/libdl.so
  ln -vsf libm.so.0 /lib/libm.so
  ln -vsf libnsl.so.0 /lib/libnsl.so
  ln -vsf libpthread.so.0 /lib/libpthread.so
  ln -vsf libresolv.so.0 /lib/libresolv.so
  ln -vsf librt.so.0 /lib/librt.so
  ln -vsf libutil.so.0 /lib/libutil.so
  ln -vsf libc.so.0 /lib/libc.so
  ln -vsf libcrypt.so.0 /lib/libcrypt.so
  chmod ug+x /lib/{ld*-uClibc-,lib{dl,m,nsl,pthread,resolv,rt,uClibc,util,crypt,intl}}*
  mkdir -vp ${TC}lib/static/
  if [[ -d /usr/lib/ ]] ; then find /usr/lib/ -name '*.a' -exec mv -v '{}' ${TC}lib/static/ ';' ; fi
  find /lib/ -name '*.a' -exec mv -v '{}' ${TC}lib/static/ ';'
  if [[ -d /usr/include/ ]] ; then cp -vR /usr/include/ $TC ; fi
  rm -vRf /usr
  chgrp e_public /bin/{ldd,ldconfig}
  chmod o-rx /bin/{ldd,ldconfig}
  if [ -f /bin/iconv ] ; then chgrp e_public /bin/iconv ; chmod o-rx /bin/iconv ; fi
  touch /etc/ld.so.cache
  chgrp e_public /lib/{ld*-uClibc-*,lib{dl,m,nsl,pthread,resolv,rt,uClibc,util,crypt,intl},Scrt1.o,crt1.o,crti.o,crtn.o}* /etc/{timezone,ld.so.cache} /etc/group
  chmod o-rx /lib/{ld*-uClibc-*,lib{dl,m,nsl,pthread,resolv,rt,uClibc,util,crypt,intl},Scrt1.o,crt1.o,crti.o,crtn.o}* /etc/{timezone,ld.so.cache} /etc/group

  if [[ -f /lib/ld-uClibc.so.lds ]] ; then chgrp e_public /lib/ld-uClibc.so.lds ; fi
  if [[ -f /lib/ld-uClibc.so.lds ]] ; then chmod o-rx /lib/ld-uClibc.so.lds ; fi

  sed -i -e 's|/usr/bin/vi|/bin/vi|g' ${TC}include/paths.h
  sed -i -e 's|/usr/sbin/sendmail|/sbin/sendmail|g' ${TC}include/paths.h
  sed -i -e 's|/bin/sh|/bin/bash|g' ${TC}include/paths.h
  sed -i -e "s|/usr/bin:/bin:/usr/sbin:/sbin|/bin:/sbin:${TC}bin|g" ${TC}include/paths.h
  sed -i -e "s|/usr/bin:/bin|/bin:/sbin:${TC}bin|g" ${TC}include/paths.h

  echo -e "#ifndef _FENV_H\n#define _FENV_H 1\n\n#include <features.h>\n#include <bits/fenv.h>\n\n#endif" > ${TC}include/fenv.h

  #cp -v ${PR}stdio.h ${TO}include/
  #cp -v ${PR}uClibc_stdio.h ${TO}include/bits/
