#=============================================================================
#Herminux Makefile to build the whole system and applications from source-code
#-----------------------------------------------------------------------------
#All variables can be overridden from outside by giving value on 'make' commandline
DISTRO=Herminux
VER=
REV=61

ARCH=i486
TUNE=i486
#CROSS_COMPILE=arm-linux-gnueabihf-
KERNELARCH=x86
GRUBARCH=i386-pc

#lowercase distro-name to include in package/etc. filenames
DISTROLC=$(shell echo $(DISTRO) | tr '[:upper:]' '[:lower:]')
PKGTAIL=$(DISTROLC)-$(ARCH).tar.xz

INSDRIVE=sda
INSPART=$(INSDRIVE)4

TOPDIR=$(shell cd ../ ; pwd)
MAINDIR_REL=$(DISTRO)
MAINDIR=$(TOPDIR)/$(MAINDIR_REL)
CFGDIR=$(TOPDIR)/$(DISTRO)/buildcfg
RUNCFGDIR=$(TOPDIR)/$(DISTRO)/runtimecfg
SRCDIR_REL=$(DISTRO)-sources
SRCDIR=$(TOPDIR)/$(SRCDIR_REL)
IMDIR=$(TOPDIR)/$(DISTRO)-intermediate
SYSROOT=/#$(IMDIR)/sysroot
DEVDIR_REL=$(DISTRO)-devheaders
DEVDIR=$(TOPDIR)/$(DEVDIR_REL)
SYSDIR_REL=$(DISTRO)-$(ARCH)
SYSDIR=$(TOPDIR)/$(SYSDIR_REL)
PRGDIR_REL=$(DISTRO)-$(ARCH)-programs
PRGDIR=$(TOPDIR)/$(PRGDIR_REL)
MADEDIR=$(TOPDIR)/$(DISTRO)-made-$(ARCH)
DOCDIR_REL=$(DISTRO)-documents
DOCDIR=$(TOPDIR)/$(DOCDIR_REL)
LOCALEDIR_REL=$(DISTRO)-locales
LOCALEDIR=$(TOPDIR)/$(LOCALEDIR_REL)
TOOLDIR=$(TOPDIR)/$(DISTRO)-$(ARCH)-toolchain

CONFDIR=/etc
STATEDIR=/var

export PKG_CONFIG_DIR=
export PKG_CONFIG_LIBDIR=$(SYSROOT)/usr/lib/pkgconfig:$(SYSROOT)/usr/share/pkgconfig
#:/usr/lib/pkgconfig:/usr/share/pkgconfig
export PKG_CONFIG_SYSROOT_DIR=$(SYSROOT)
#export PKG_CONFIG_PATH=$(SYSROOT)/usr/lib/pkgconfig:$(SYSROOT)/usr/share/pkgconfig

export CC=gcc -march=$(ARCH) -mtune=$(TUNE) -Os 
#export CFLAGS= -march=$(ARCH) -mtune=$(TUNE) -Os --sysroot=$(SYSROOT)
export CXX=g++ -march=$(ARCH) -mtune=$(TUNE) -Os 
#export CXXFLAGS= -march=$(ARCH) -mtune=$(TUNE) -Os --sysroot=$(SYSROOT)
export LIBRARY_PATH=$(SYSROOT)/usr/lib
export CPPFLAGS= -I $(SYSROOT)/usr/include 
#export LDFLAGS=
#export LIBS=

CD=cd 
CP=cp -a
LN=ln -sfn 
MD=mkdir -p 
MV=mv 
RM=rm -rf 
CHMOD=chmod 
PACKXZ=tar -cJf 
UNTAR=tar -xf 
UNXZ=unxz -dk 
PATCH=patch -p1 
STRIP=strip 

RMIM=$(RM) #command to remove intermediate folders (if no many Gigabytes as working dir.) - replace with something else if removal of intermediate directories is not planned

#----------------------------------------------------ALL TARGETS
all: prepare base gui programs devheaders documents locales toolchain

fresh: purge prepare base gui programs devheaders documents locales toolchain

help:
	@echo " "
	@echo "Possible make targets: 'all' (default), 'fresh' (cleans before), 'archive' (result), 'packsrc', 'install' (to drive), 'clean' (intermediate), 'purge' (results)"
	@echo "----------------------"

prepare:
	@echo "                                                          Creating working & output directories... "
	$(MD) $(IMDIR) $(MADEDIR) $(SYSDIR) $(PRGDIR) $(DEVDIR) $(DOCDIR) $(LOCALEDIR) $(TOOLDIR) $(SYSROOT) 
	#pkg-config --list-all
	@echo " "


#====================================================BASE SYSTEM=========================================================
KERNEL=$(SYSDIR)/base/boot/$(DISTROLC)-kernel
GLIBC=$(SYSDIR)/base/usr/lib/libc.so
BUSYBOX=$(SYSDIR)/base/bin/busybox
MKE2FS=$(SYSDIR)/base/sbin/mke2fs
XZPRG=$(SYSDIR)/base/usr/bin/xz
NCURSES=$(SYSDIR)/base/usr/lib/libncursesw.so
NANO=$(SYSDIR)/base/usr/bin/nano
SETTERM=$(SYSDIR)/base/usr/bin/setterm
ZLIB=$(SYSDIR)/base/usr/lib/libz.so
BZIP2=$(SYSDIR)/base/usr/lib/libbz2.so
ATTR=$(SYSDIR)/base/usr/lib/libattr.so
LIBCAP=$(SYSDIR)/base/usr/lib/libcap.so
GCC_VER=4.9.1
GCCLIBS=$(SYSDIR)/base/usr/lib/libstdc++.so

base: prepare_base $(KERNEL) $(GLIBC) $(BUSYBOX) $(MKE2FS) $(XZPRG) $(NCURSES) $(NANO) $(UTILINUX) $(SETTERM) $(ZLIB) $(BZIP2) $(ATTR) $(LIBCAP) $(GCCLIBS) 
	@echo " "
prepare_base: prepare
	@echo "                                                          Building the base-system (commandline)"	
	@echo "------------------------------------------------------------------------------------------------"	
	$(MD) $(SYSDIR)/base 
	$(CD) $(SYSDIR)/base  ;  $(MD) bin boot dev etc mnt proc root sbin sys tmp usr/bin usr/lib usr/sbin usr/share usr/local/bin usr/local/sbin usr/local/share  \
	  var var/cache var/tmp var/run/lock var/run/log  ;  $(LN) usr/lib lib  ;  $(LN) ../lib usr/local/lib  ;  $(LN) run/lock var/lock  ;  $(LN) run/log var/log
	$(CD) $(SYSDIR)/base/mnt  ;  $(MD) hda hda1 hda2 hda3 hda4 hdb hdb1 hdb2 hdb3 hdb4 mmcblk0 mmcblk0p1 mmcblk0p2 mmcblk0p3 mmcblk0p4 mmcblk1 \
	  sda sda1 sda2 sda3 sda4 sda5 sda6 sda7 sda8 sdb sdb1 sdb2 sdb3 sdb4 sdc sdc1 sdc2 sdc3 sdc4 sdd sdd1 sdd2 sdd3 sdd4 sr0 sr1
	$(CP)  $(RUNCFGDIR)/base/etc/* $(SYSDIR)/base/etc/  ;  $(CP) $(RUNCFGDIR)/base/dev/* $(SYSDIR)/base/dev/
	$(CP) $(RUNCFGDIR)/base/bin/* $(SYSDIR)/base/usr/bin/  ;  $(CP) $(RUNCFGDIR)/base/kmap $(SYSDIR)/base/usr/share
	@echo " "

KERNELVER=3.18.7
$(KERNEL): $(CFGDIR)/base/kernel/$(ARCH)/.config
	@echo "                                                          Compiling kernel... "
	$(RM) $(IMDIR)/linux-$(KERNELVER) $(DEVDIR)/linux-$(KERNELVER)-headers
	$(UNTAR) $(SRCDIR)/base/kernel/linux-$(KERNELVER).tar.xz -C $(IMDIR)  ;  $(MD) $(DEVDIR)/linux-$(KERNELVER)-headers/usr
	$(CD) $(IMDIR)/linux-$(KERNELVER)  ;  make mrproper  ;  xzcat $(SRCDIR)/base/kernel/patch-$(KERNELVER)-rt2.patch.xz | $(PATCH)  ;  $(CP) $(CFGDIR)/base/kernel/$(ARCH)/.config ./  ;  \
	  make oldconfig  ;  make  ;  $(CP) ./arch/$(KERNELARCH)/boot/bzImage $(KERNEL) ; INSTALL_MOD_PATH=$(SYSDIR)/base/usr make modules_install  ;  \
      make headers_install INSTALL_HDR_PATH=$(DEVDIR)/linux-$(KERNELVER)-headers/usr
	$(RMIM) $(IMDIR)/linux-$(KERNELVER) #clean tha many hundred MBytes of intermediate data to save disk space

GLIBC_VER=2.20
$(GLIBC):  # $(CFGDIR)/base/glibc-$(GLIBC_VER).cfg
	@echo "                                                          Building glibc... "
	$(RM) $(MADEDIR)/glibc-$(GLIBC_VER) $(IMDIR)/glibc-$(GLIBC_VER)
	$(UNTAR) $(SRCDIR)/base/glibc-$(GLIBC_VER).tar.xz -C $(IMDIR)  ;  $(MD) $(IMDIR)/glibc-$(GLIBC_VER)-build
	$(CD) $(IMDIR)/glibc-$(GLIBC_VER)-build  ; ../glibc-2.20/configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --host=$(ARCH)-linux --enable-shared --enable-kernel-2.6.32 --with-fp --with-cpu=$(ARCH)  ;  \
	  make  ;  make install_root=$(MADEDIR)/glibc-$(GLIBC_VER) install
	$(CD) $(MADEDIR)/glibc-$(GLIBC_VER)/lib  ;  $(STRIP) *.so*  ;  $(CP) ld-$(GLIBC_VER).so ld-linux.so* libc-$(GLIBC_VER).so libc.so*   \
	  libdl-$(GLIBC_VER).so libdl.so* libm-$(GLIBC_VER).so libm.so*  libnss_dns-$(GLIBC_VER).so libnss_dns.so* libnss_files-$(GLIBC_VER).so libnss_files.so*  \
	  libpthread-$(GLIBC_VER).so libpthread.so* libresolv-$(GLIBC_VER).so libresolv.so* librt-$(GLIBC_VER).so librt.so*  $(SYSDIR)/base/usr/lib
	$(CD) $(MADEDIR)/glibc-$(GLIBC_VER)/usr/lib ; $(CP) libc.so libpthread.so $(SYSDIR)/base/usr/lib  ;  $(CD) $(SYSDIR)/base/usr/lib  ;  $(LN) libdl-$(GLIBC_VER).so libdl.so  ;  $(LN) libm-$(GLIBC_VER).so libm.so  ;  \
	  $(LN) libnss_dns-$(GLIBC_VER).so libnss_dns.so  ;  $(LN) libnss_files-$(GLIBC_VER).so libnss_files.so  ;  $(LN) libresolv-$(GLIBC_VER).so libresolv.so  ;  $(LN) librt-$(GLIBC_VER).so librt.so
	$(RMIM) $(IMDIR)/glibc-$(GLIBC_VER) $(IMDIR)/glibc-$(GLIBC_VER)-build

BUSYBOXVER=1.23.1
$(BUSYBOX): $(CFGDIR)/base/busybox/.config
	@echo "                                                          Compiling busybox... "
	$(UNTAR) $(SRCDIR)/base/busybox-$(BUSYBOXVER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/busybox-$(BUSYBOXVER)  ;  make mrproper  ;  $(CP) $(CFGDIR)/base/busybox/.config ./  ;  \
	  make  ;  make CONFIG_PREFIX=$(SYSDIR)/base install
	$(CHMOD) u+s $(SYSDIR)/base/bin/busybox  ;  $(RM) $(SYSDIR)/base/sbin/depmod $(SYSDIR)/base/linuxrc  ;  $(STRIP) $(BUSYBOX)

E2FSPROGS_VER=1.42.13
E2FSPROGS=$(SYSDIR)/base/sbin/mkfs.ext3  #  $(MADEDIR)/e2fsprogs-$(E2FSPROGS_VER)
$(E2FSPROGS): $(CFGDIR)/base/e2fsprogs-$(E2FSPROGS_VER).cfg
	@echo "                                                          Compiling e2fsprogs (mke2fs,etc.)... "
	$(RM) $(MADEDIR)/e2fsprogs-$(E2FSPROGS_VER) $(IMDIR)/e2fsprogs-$(E2FSPROGS_VER)
	$(UNTAR) $(SRCDIR)/base/e2fsprogs-$(E2FSPROGS_VER).tar.gz -C $(IMDIR) 
	$(CD) $(IMDIR)/e2fsprogs-$(E2FSPROGS_VER)  ;  sh $(CFGDIR)/base/e2fsprogs-$(E2FSPROGS_VER).cfg  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/e2fsprogs-$(E2FSPROGS_VER) install
	$(RMIM) $(IMDIR)/e2fsprogs-$(E2FSPROGS_VER)
$(MKE2FS): $(E2FSPROGS)
	@echo "                                                          Copying mke2fs to target... "
	-$(CD) $(MADEDIR)/e2fsprogs-$(E2FSPROGS_VER)  ;  $(CP) sbin/mke2fs sbin/mkfs.* $(SYSDIR)/base/sbin  ;  $(STRIP) $(MKE2FS)

XZ_VER=5.2.1
$(XZPRG): $(CFGDIR)/base/xz-$(XZ_VER).cfg
	@echo "                                                          Compiling xz... "
	$(RM) $(IMDIR)/xz-$(XZ_VER)  ;  $(UNTAR) $(SRCDIR)/base/xz-$(XZ_VER).tar.xz -C $(IMDIR) 
	$(CD) $(IMDIR)/xz-$(XZ_VER)  ;  sh $(CFGDIR)/base/xz-$(XZ_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/xz-$(XZ_VER) install
	-$(CD) $(MADEDIR)/xz-$(XZ_VER)/usr/bin  ;  $(STRIP) *  ;  $(CP) xz lzcat lzma unlzma unxz xzcat $(SYSDIR)/base/usr/bin
	-$(CD) $(MADEDIR)/xz-$(XZ_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) liblzma.so* $(SYSDIR)/base/usr/lib

NCURSES_VER=5.9

$(NCURSES): $(CFGDIR)/base/ncurses-$(NCURSES_VER).cfg
	@echo "                                                          Compiling ncurses (for nano, setterm, mc, etc.)... "
	$(RM) $(MADEDIR)/ncurses-$(NCURSES_VER) $(IMDIR)/ncurses-$(NCURSES_VER)
	$(UNTAR) $(SRCDIR)/base/ncurses-$(NCURSES_VER).tar.gz -C $(IMDIR)
	$(CD) $(IMDIR)/ncurses-$(NCURSES_VER)  ;  sh $(CFGDIR)/base/ncurses-$(NCURSES_VER).cfg  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/ncurses-$(NCURSES_VER) install
	-$(CD) $(MADEDIR)/ncurses-$(NCURSES_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libncursesw.so* $(SYSDIR)/base/usr/lib	
	-$(MD) $(SYSDIR)/base/usr/share/terminfo/l  ;  $(CP) $(MADEDIR)/ncurses-$(NCURSES_VER)/usr/share/terminfo/l/linux $(SYSDIR)/base/usr/share/terminfo/l
	-$(MD) $(SYSDIR)/base/usr/share/terminfo/u  ;  $(CP) $(MADEDIR)/ncurses-$(NCURSES_VER)/usr/share/terminfo/u/unknown $(SYSDIR)/base/usr/share/terminfo/u

NANO_VER=2.4.1
$(NANO): $(CFGDIR)/base/nano-$(NANO_VER).cfg  #  $(NCURSES) 
	@echo "                                                          Compiling nano text editor... "
	$(RM) $(MADEDIR)/nano-$(NANO_VER) $(IMDIR)/nano-$(NANO_VER)
	$(UNTAR) $(SRCDIR)/base/nano-$(NANO_VER).tar.gz -C $(IMDIR)
	$(CD) $(IMDIR)/nano-$(NANO_VER)  ;  sh $(CFGDIR)/base/nano-$(NANO_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/nano-$(NANO_VER) install
	-$(CD) $(MADEDIR)/nano-$(NANO_VER)  ;  $(CP) usr/bin/nano $(SYSDIR)/base/usr/bin  ;  $(STRIP) $(NANO)

UTILINUX_VER=2.26.2
UTILINUX=$(SYSDIR)/base/usr/bin/./setterm  #  $(MADEDIR)/util-linux-$(UTILINUX_VER)
$(UTILINUX): $(CFGDIR)/base/util-linux-$(UTILINUX_VER).cfg  #  $(NCURSES) 
	@echo "                                                          Compiling util-linux (setterm,etc.)... "
	$(RM) $(MADEDIR)/util-linux-$(UTILINUX_VER) $(IMDIR)/util-linux-$(UTILINUX_VER)
	$(UNTAR) $(SRCDIR)/base/util-linux-$(UTILINUX_VER).tar.xz -C $(IMDIR)
	-$(CD) $(IMDIR)/util-linux-$(UTILINUX_VER)  ;  sh $(CFGDIR)/base/util-linux-$(UTILINUX_VER).cfg  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/util-linux-$(UTILINUX_VER) install 
	$(RMIM) $(IMDIR)/util-linux-$(UTILINUX_VER)
$(SETTERM): $(UTILINUX)  #  $(NCURSES)
	@echo "                                                          Copying setterm to target... "
	-$(CD) $(MADEDIR)/util-linux-$(UTILINUX_VER)  ;  $(CP) usr/bin/setterm $(SYSDIR)/base/usr/bin  ;  $(STRIP) $(SETTERM)

ZLIB_VER=1.2.8
$(ZLIB): $(CFGDIR)/base/zlib-$(ZLIB_VER).cfg
	@echo "                                                          Compiling zlib (libz)... "
	$(RM) $(MADEDIR)/zlib-$(ZLIB_VER) $(IMDIR)/zlib-$(ZLIB_VER)  ;  $(UNTAR) $(SRCDIR)/base/zlib-$(ZLIB_VER).tar.xz -C $(IMDIR) 
	$(CD) $(IMDIR)/zlib-$(ZLIB_VER)  ;  sh $(CFGDIR)/base/zlib-$(ZLIB_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/zlib-$(ZLIB_VER) install 
	-$(CD) $(MADEDIR)/zlib-$(ZLIB_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libz.so* $(SYSDIR)/base/usr/lib

BZIP2_VER=1.0.6
$(BZIP2):
	@echo "                                                          Compiling bzip2 (libbz2)... "
	$(RM) $(IMDIR)/bzip2-$(BZIP2_VER)  ;  $(UNTAR) $(SRCDIR)/base/bzip2-$(BZIP2_VER).tar.gz -C $(IMDIR)
	$(CD) $(IMDIR)/bzip2-$(BZIP2_VER)  ;  make -f Makefile-libbz2_so  ;  $(STRIP) libbz2.so.$(BZIP2_VER)  ;  $(CP) libbz2.so.$(BZIP2_VER) $(SYSDIR)/base/usr/lib
	$(CD) $(SYSDIR)/base/usr/lib  ;  $(LN) libbz2.so.$(BZIP2_VER) libbz2.so  ;  $(LN) libbz2.so.$(BZIP2_VER) libbz2.so.1  ;  $(LN) libbz2.so.$(BZIP2_VER) libbz2.so.1.0

ATTR_VER=2.4.47
$(ATTR): $(CFGDIR)/base/attr-$(ATTR_VER).cfg
	@echo "                                                          Compiling attr (libattr)... "
	$(RM) $(MADEDIR)/attr-$(ATTR_VER) $(IMDIR)/attr-$(ATTR_VER)  ;  $(UNTAR) $(SRCDIR)/base/attr-$(ATTR_VER).src.tar.gz -C $(IMDIR) 
	$(CD) $(IMDIR)/attr-$(ATTR_VER)  ;  sh $(CFGDIR)/base/attr-$(ATTR_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/attr-$(ATTR_VER) install install-lib 
	-$(CD) $(MADEDIR)/attr-$(ATTR_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libattr.so* $(SYSDIR)/base/usr/lib
	-$(CD) $(SYSDIR)/base/usr/lib  ;  $(CHMOD) 755 libattr.so.1.1.0  ;  $(LN) libattr.so.1.1.0 libattr.so

LIBCAP_VER=2.24
$(LIBCAP):
	@echo "                                                          Compiling libcap... "
	$(RM) $(IMDIR)/libcap-$(LIBCAP_VER)  ;  $(UNTAR) $(SRCDIR)/base/libcap-$(LIBCAP_VER).tar.xz -C $(IMDIR)
	$(CD) $(IMDIR)/libcap-$(LIBCAP_VER)  ;  make  ;  $(CD) libcap  ;  $(STRIP) libcap.so.$(LIBCAP_VER)  ;  $(CP) libcap.so* $(SYSDIR)/base/usr/lib

GCC=$(SYSDIR)/base/usr/lib/libgcc_s.so  #  $(MADEDIR)/gcc-$(GCC_VER)
$(GCCLIBS): $(GCC)
	@echo "                                                          Copying libstdc++.so and libgcc_s.so to target... "
	$(CP) $(MADEDIR)/gcc-$(GCC_VER)/usr/local/lib/libstdc++.so* $(MADEDIR)/gcc-$(GCC_VER)/usr/local/lib/libgcc_s.so* $(SYSDIR)/base/usr/lib
	-$(CD) $(SYSDIR)/base/usr/lib  ;  $(STRIP) libgcc_s.so*  ;  $(STRIP) libstdc++.so*  ;  $(RM) libstdc++*.py

#rar/unrar/urar (e.g. for multipart compressed videos)


#====================================================GUI=========================================================
XORG_BASE=$(SYSDIR)/gui/usr/bin/Xorg
XORG_IMPORTANT=$(SYSDIR)/gui/usr/bin/startx
DESKTOP_ENV=$(SYSDIR)/gui/etc/desktop.cfg

gui: prepare_gui $(XORG_BASE) $(XORG_IMPORTANT) $(DESKTOP_ENV)  #  base
	@echo " "
prepare_gui: prepare
	@echo "                                                          Building the GUI (xorg-base,important, mini and full Desktop-Environments) "	
	@echo "-------------------------------------------------------------------------------------------------------------------------------------"	
	$(MD) $(SYSDIR)/gui
	$(CD) $(SYSDIR)/gui  ;  $(MD) etc usr/bin usr/lib usr/share usr/share/X11 # usr/share/terminfo usr/share/fonts usr/share/icons usr/share/pixmaps
	@echo " "

#----------------------------------------------------XORG-BASE
XMACRO_VER=1.17.1
PIXMAN_VER=0.32.6
XTRANS_VER=1.3.5
LIBXAU_VER=1.0.7
PTSTUB_VER=0.3
LIBXCB_VER=1.11
LIBX11_VER=1.6.2
LIBXKB_VER=1.0.8
FONTENC_VER=1.1.1
FREETYPE_VER=2.5.5
LIBXFONT_VER=1.5.0
PCIACCESS_VER=0.13.1
LIBSHA1_VER=0.3
LIBDRM_VER=2.4.59
SHMFENCE_VER=1.2
LIBXDMCP_VER=1.1.1
XORG_VER=1.17.1
XKBCOMP_VER=1.2.4
XKBCONF_VER=2.6
XF86KBD_VER=1.6.1
XF86MOUSE_VER=1.7.2
XF86FBDEV_VER=0.4.4
$(XORG_BASE): $(CFGDIR)/gui/xorg-base/xorg-server-$(XORG_VER).cfg  $(CFGDIR)/gui/xorg-base/libX11-$(LIBX11_VER).cfg  $(CFGDIR)/gui/xorg-base/libxcb-$(LIBXCB_VER).cfg  \
                              $(CFGDIR)/gui/xorg-base/pixman-$(PIXMAN_VER).cfg $(CFGDIR)/gui/xorg-base/freetype-$(FREETYPE_VER).cfg $(CFGDIR)/gui/xorg-base/libXfont-$(LIBXFONT_VER).cfg  \
                              $(CFGDIR)/gui/xorg-base/libpciaccess-$(PCIACCESS_VER).cfg $(CFGDIR)/gui/xorg-base/libdrm-$(LIBDRM_VER).cfg $(CFGDIR)/gui/xorg-base/xkbcomp-$(XKBCOMP_VER).cfg  \
                              $(CFGDIR)/gui/xorg-base/xkeyboard-config-$(XKBCONF_VER).cfg 
	@echo "                                                          Compiling XORG (X11 server) basic binaries (minimum GUI startable with 'Xorg' without window-manager)... "	
	$(RM) $(MADEDIR)/util-macros-$(XMACRO_VER) $(IMDIR)/util-macros-$(XMACRO_VER)  $(IMDIR)/xorg-protos  $(MADEDIR)/pixman-$(PIXMAN_VER) $(IMDIR)/pixman-$(PIXMAN_VER)  \
	   $(MADEDIR)/xtrans-$(XTRANS_VER) $(IMDIR)/xtrans-$(XTRANS_VER)  $(RM) $(MADEDIR)/libXau-$(LIBXAU_VER) $(IMDIR)/libXau-$(LIBXAU_VER)  $(MADEDIR)/libpthread-stubs-$(PTSTUB_VER) \
	   $(IMDIR)/libpthread-stubs-$(PTSTUB_VER)  $(MADEDIR)/libxcb-$(LIBXCB_VER) $(IMDIR)/libxcb-$(LIBXCB_VER)  $(MADEDIR)/libX11-$(LIBX11_VER) $(IMDIR)/libX11-$(LIBX11_VER)  \
	   $(MADEDIR)/libxkbfile-$(LIBXKB_VER) $(IMDIR)/libxkbfile-$(LIBXKB_VER)  $(MADEDIR)/libfontenc-$(FONTENC_VER) $(IMDIR)/libfontenc-$(FONTENC_VER)  $(MADEDIR)/freetype-$(FREETYPE_VER)  \
	   $(IMDIR)/freetype-$(FREETYPE_VER)  $(MADEDIR)/libXfont-$(LIBXFONT_VER) $(IMDIR)/libXfont-$(LIBXFONT_VER)  $(MADEDIR)/libpciaccess-$(PCIACCESS_VER) $(IMDIR)/libpciaccess-$(PCIACCESS_VER)  \
	   $(MADEDIR)/libsha1-$(LIBSHA1_VER) $(IMDIR)/libsha1-$(LIBSHA1_VER)  $(MADEDIR)/libdrm-$(LIBDRM_VER) $(IMDIR)/libdrm-$(LIBDRM_VER)  $(MADEDIR)/libxshmfence-$(SHMFENCE_VER)  \
	   $(IMDIR)/libxshmfence-$(SHMFENCE_VER)  $(MADEDIR)/xorg-server-$(XORG_VER) $(IMDIR)/xorg-server-$(XORG_VER)  $(MADEDIR)/xkbcomp-$(XKBCOMP_VER) $(IMDIR)/xkbcomp-$(XKBCOMP_VER)  \
	   $(MADEDIR)/xkeyboard-config-$(XKBCONF_VER) $(IMDIR)/xkeyboard-config-$(XKBCONF_VER)  $(MADEDIR)/xf86-input-keyboard-$(XF86KBD_VER) $(IMDIR)/xf86-input-keyboard-$(XF86KBD_VER)  \
	   $(MADEDIR)/xf86-input-mouse-$(XF86MOUSE_VER) $(IMDIR)/xf86-input-mouse-$(XF86MOUSE_VER)  $(MADEDIR)/xf86-video-fbdev-$(XF86FBDEV_VER) $(IMDIR)/xf86-video-fbdev-$(XF86FBDEV_VER)  \
	   $(MADEDIR)/libXdmcp-$(LIBXDMCP_VER) $(IMDIR)/libXdmcp-$(LIBXDMCP_VER)
	$(MADEDIR)/xorg-base-$(XORG_VER)  ;  $(MD) $(MADEDIR)/xorg-base-$(XORG_VER)
	$(UNTAR) $(SRCDIR)/gui/xorg-base/util-macros-$(XMACRO_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/util-macros-$(XMACRO_VER)  ; ./configure --prefix=/usr  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/util-macros-$(XMACRO_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	$(MD) $(IMDIR)/xorg-protos  ;  $(CP) $(SRCDIR)/gui/xorg-base/proto/* $(IMDIR)/xorg-protos/  ;  # $(CP) $(CFGDIR)/gui/xorg-base/makeallprotos.sh $(IMDIR)/xorg-protos 
	for f in $(IMDIR)/xorg-protos/*.tar.bz2  ;  do $(CD) $(IMDIR)/xorg-protos  ;  tar -xf $$f  ;  cd $${f%.*.*}  ;  ./configure --prefix=/usr  ;  make  ;  \
	  make DESTDIR=$${f%.*.*}-out install  ;  make DESTDIR=$(SYSROOT) install  ;  cd ..  ; $(RM) $${f%.*.*}  ;  done  
	$(UNTAR) $(SRCDIR)/gui/xorg-base/pixman-$(PIXMAN_VER).tar.gz -C $(IMDIR)  ;  $(CD) $(IMDIR)/pixman-$(PIXMAN_VER)  ;  sh $(CFGDIR)/gui/xorg-base/pixman-$(PIXMAN_VER).cfg  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/pixman-$(PIXMAN_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/pixman-$(PIXMAN_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libpixman-1.so* $(SYSDIR)/gui/usr/lib
	$(UNTAR) $(SRCDIR)/gui/xorg-base/xtrans-$(XTRANS_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/xtrans-$(XTRANS_VER)  ;  ./configure --prefix=/usr ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/xtrans-$(XTRANS_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	$(UNTAR) $(SRCDIR)/gui/xorg-base/libXau-$(LIBXAU_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/libXau-$(LIBXAU_VER)  ;  ./configure --prefix=/usr  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/libXau-$(LIBXAU_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/libXau-$(LIBXAU_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libXau.so* $(SYSDIR)/gui/usr/lib
	$(UNTAR) $(SRCDIR)/gui/xorg-base/libpthread-stubs-$(PTSTUB_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/libpthread-stubs-$(PTSTUB_VER)  ;  ./configure --prefix=/usr  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/libpthread-stubs-$(PTSTUB_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	$(UNTAR) $(SRCDIR)/gui/xorg-base/libxcb-$(LIBXCB_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/libxcb-$(LIBXCB_VER)  ;  sh $(CFGDIR)/gui/xorg-base/libxcb-$(LIBXCB_VER).cfg  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/libxcb-$(LIBXCB_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/libxcb-$(LIBXCB_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libxcb.so* libxcb-*.so* $(SYSDIR)/gui/usr/lib
	$(UNTAR) $(SRCDIR)/gui/xorg-base/libX11-$(LIBX11_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/libX11-$(LIBX11_VER)  ;  sh $(CFGDIR)/gui/xorg-base/libX11-$(LIBX11_VER).cfg  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/libX11-$(LIBX11_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/libX11-$(LIBX11_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libX11.so* libX11-xcb.so* $(SYSDIR)/gui/usr/lib
	$(UNTAR) $(SRCDIR)/gui/xorg-base/libxkbfile-$(LIBXKB_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/libxkbfile-$(LIBXKB_VER)  ;  ./configure --prefix=/usr  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/libxkbfile-$(LIBXKB_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/libxkbfile-$(LIBXKB_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libxkbfile.so* $(SYSDIR)/gui/usr/lib
	$(UNTAR) $(SRCDIR)/gui/xorg-base/libfontenc-$(FONTENC_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/libfontenc-$(FONTENC_VER)  ;  ./configure --prefix=/usr  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/libfontenc-$(FONTENC_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/libfontenc-$(FONTENC_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libfontenc.so* $(SYSDIR)/gui/usr/lib
	$(UNTAR) $(SRCDIR)/gui/xorg-base/freetype-$(FREETYPE_VER).tar.gz -C $(IMDIR)  ;  $(CD) $(IMDIR)/freetype-$(FREETYPE_VER)  ;  sh $(CFGDIR)/gui/xorg-base/freetype-$(FREETYPE_VER).cfg  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/freetype-$(FREETYPE_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/freetype-$(FREETYPE_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libfreetype.so* $(SYSDIR)/gui/usr/lib
	$(UNTAR) $(SRCDIR)/gui/xorg-base/libXfont-$(LIBXFONT_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/libXfont-$(LIBXFONT_VER)  ;  sh $(CFGDIR)/gui/xorg-base/libXfont-$(LIBXFONT_VER).cfg  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/libXfont-$(LIBXFONT_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/libXfont-$(LIBXFONT_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libXfont.so* $(SYSDIR)/gui/usr/lib
	$(UNTAR) $(SRCDIR)/gui/xorg-base/libpciaccess-$(PCIACCESS_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/libpciaccess-$(PCIACCESS_VER)  ;  sh $(CFGDIR)/gui/xorg-base/libpciaccess-$(PCIACCESS_VER).cfg  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/libpciaccess-$(PCIACCESS_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/libpciaccess-$(PCIACCESS_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libpciaccess.so* $(SYSDIR)/gui/usr/lib
	$(UNTAR) $(SRCDIR)/gui/xorg-base/libsha1-$(LIBSHA1_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/libsha1-$(LIBSHA1_VER)  ;  ./configure --prefix=/usr  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/libsha1-$(LIBSHA1_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/libsha1-$(LIBSHA1_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libsha1.so* $(SYSDIR)/gui/usr/lib
	$(UNTAR) $(SRCDIR)/gui/xorg-base/libdrm-$(LIBDRM_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/libdrm-$(LIBDRM_VER)  ;  sh $(CFGDIR)/gui/xorg-base/libdrm-$(LIBDRM_VER).cfg  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/libdrm-$(LIBDRM_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/libdrm-$(LIBDRM_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libdrm*.so* libkms.so* $(SYSDIR)/gui/usr/lib
	$(UNTAR) $(SRCDIR)/gui/xorg-base/libxshmfence-$(SHMFENCE_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/libxshmfence-$(SHMFENCE_VER)  ;  ./configure --prefix=/usr  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/libxshmfence-$(SHMFENCE_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/libxshmfence-$(SHMFENCE_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libxshmfence.so* $(SYSDIR)/gui/usr/lib
	$(UNTAR) $(SRCDIR)/gui/xorg-base/libXdmcp-$(LIBXDMCP_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/libXdmcp-$(LIBXDMCP_VER)  ;  ./configure --prefix=/usr  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/libXdmcp-$(LIBXDMCP_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/libXdmcp-$(LIBXDMCP_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libXdmcp.so* $(SYSDIR)/gui/usr/lib/
	$(CP) $(CFGDIR)/gui/xorg-base/DRI-fake/* $(SYSROOT)/  ;  $(MD) $(SYSDIR)/gui/usr/lib/xorg/modules/drivers  ;  $(MD) $(SYSDIR)/gui/usr/lib/xorg/modules/input
	$(UNTAR) $(SRCDIR)/gui/xorg-base/xorg-server-$(XORG_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/xorg-server-$(XORG_VER)  ;  $(PATCH) -i $(CFGDIR)/gui/xorg-base/xorg-server-$(XORG_VER)-add_prime_support-1.patch  ;  \
	  $(PATCH) -i $(CFGDIR)/gui/xorg-base/xorg-server-$(XORG_VER)-disable_modesetting_32bit_disappearing_hwcursor.patch  ;  \
	  sh $(CFGDIR)/gui/xorg-base/xorg-server-$(XORG_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/xorg-server-$(XORG_VER) install  ;  make DESTDIR=$(SYSROOT) install  
	$(CD) $(MADEDIR)/xorg-server-$(XORG_VER)/usr/lib/xorg/modules  ;  $(STRIP) *.so*  ;  $(CP) *.so* $(SYSDIR)/gui/usr/lib/xorg/modules/
	 $(CD) $(MADEDIR)/xorg-server-$(XORG_VER)/usr/lib/xorg/modules/drivers  ;  $(STRIP) *.so*  ; $(CP) *.so* $(SYSDIR)/gui/usr/lib/xorg/modules/drivers
	$(UNTAR) $(SRCDIR)/gui/xorg-base/xkbcomp-$(XKBCOMP_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/xkbcomp-$(XKBCOMP_VER)  ;  sh $(CFGDIR)/gui/xorg-base/xkbcomp-$(XKBCOMP_VER).cfg  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/xkbcomp-$(XKBCOMP_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CD) $(MADEDIR)/xkbcomp-$(XKBCOMP_VER)/usr/bin/  ;  $(STRIP) *  ;  $(CP) xkbcomp $(SYSDIR)/gui/usr/bin/
	$(UNTAR) $(SRCDIR)/gui/xorg-base/xkeyboard-config-$(XKBCONF_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/xkeyboard-config-$(XKBCONF_VER)  ;  sh $(CFGDIR)/gui/xorg-base/xkeyboard-config-$(XKBCONF_VER).cfg  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/xkeyboard-config-$(XKBCONF_VER) install  ;  make DESTDIR=$(SYSROOT) install  ;  $(CP) $(MADEDIR)/xkeyboard-config-$(XKBCONF_VER)/usr/share/X11/xkb $(SYSDIR)/gui/usr/share/X11
	  $(CP) $(CFGDIR)/gui/xorg-important/dvorak-hu-herminux $(SYSDIR)/gui/usr/share/X11/xkb/
	$(UNTAR) $(SRCDIR)/gui/xorg-base/xf86-input-keyboard-$(XF86KBD_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/xf86-input-keyboard-$(XF86KBD_VER)  ;  ./configure --prefix=/usr  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/xf86-input-keyboard-$(XF86KBD_VER) install  ;  make DESTDIR=$(SYSROOT) install
	  $(CD) $(MADEDIR)/xf86-input-keyboard-$(XF86KBD_VER)/usr/lib/xorg/modules/input  ;  $(STRIP) *.so*  ;  $(CP) kbd_drv.so* $(SYSDIR)/gui/usr/lib/xorg/modules/input/
	$(UNTAR) $(SRCDIR)/gui/xorg-base/xf86-input-mouse-$(XF86MOUSE_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/xf86-input-mouse-$(XF86MOUSE_VER)  ;  ./configure --prefix=/usr  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/xf86-input-mouse-$(XF86MOUSE_VER) install  ;  make DESTDIR=$(SYSROOT) install  
	  $(CD) $(MADEDIR)/xf86-input-mouse-$(XF86MOUSE_VER)/usr/lib/xorg/modules/input  ;  $(STRIP) *.so*  ;  $(CP) mouse_drv.so* $(SYSDIR)/gui/usr/lib/xorg/modules/input/
	$(UNTAR) $(SRCDIR)/gui/xorg-base/xf86-video-fbdev-$(XF86FBDEV_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/xf86-video-fbdev-$(XF86FBDEV_VER)  ;  ./configure --prefix=/usr  ;  make  ;  \
	  make DESTDIR=$(MADEDIR)/xf86-video-fbdev-$(XF86FBDEV_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	  $(CD) $(MADEDIR)/xf86-video-fbdev-$(XF86FBDEV_VER)/usr/lib/xorg/modules/drivers  ;  $(STRIP) *.so*  ;  $(CP) fbdev_drv.so* $(SYSDIR)/gui/usr/lib/xorg/modules/drivers/
	#xf86-video-modesetting is included in 'xorg-server' source since xorg version 1.17 (so no need to compile it from separate package, maybe in case of fixed/patched newer version)
	$(CD) $(MADEDIR)/xorg-server-$(XORG_VER)/usr/bin/  ;  $(STRIP) Xorg  ;  $(CP) Xorg X $(SYSDIR)/gui/usr/bin/
	$(RMIM) $(IMDIR)/xorg-server-$(XORG_VER) $(IMDIR)/libX11-$(LIBX11_VER) $(IMDIR)/pixman-$(PIXMAN_VER)


#----------------------------------------------------XORG-IMPORTANT
LIBXPM=$(SYSDIR)/gui/usr/lib/libXpm.so
LIBJPEG=$(SYSDIR)/gui/usr/lib/libjpeg.so
LIBPNG=$(SYSDIR)/gui/usr/lib/libpng.so
LIBGIF=$(SYSDIR)/gui/usr/lib/libgif.so
LIBTIFF=$(SYSDIR)/gui/usr/lib/libtiff.so
LIBXEXT=$(SYSDIR)/gui/usr/lib/libXext.so
LIBXRENDER=$(SYSDIR)/gui/usr/lib/libXrender.so
LIBXRANDR=$(SYSDIR)/gui/usr/lib/libXrandr.so
FONTCONFIG=$(SYSDIR)/gui/usr/lib/libfontconfig.so
LIBXFT=$(SYSDIR)/gui/usr/lib/libXft.so
LIBEXPAT=$(SYSDIR)/gui/usr/lib/libexpat.so
JWM=$(SYSDIR)/gui/usr/bin/jwm
LIBXT_INC=$(MADEDIR)/libXt-$(LIBXT_VER)/usr/include/X11/Intrinsic.h
LIBXMUU=$(SYSDIR)/gui/usr/lib/libXmuu.so
RXVT=$(SYSDIR)/gui/usr/bin/rxvt
TERMINFO=$(SYSDIR)/gui/usr/share/terminfo
XINIT=$(SYSDIR)/gui/usr/bin/xinit
SETXKBMAP=$(SYSDIR)/gui/usr/bin/setxkbmap
XRANDR=$(SYSDIR)/gui/usr/bin/xrandr
XSET=$(SYSDIR)/gui/usr/bin/xset
MKFONTSCALE=$(SYSDIR)/gui/usr/bin/mkfontscale
MKFONTDIR=$(SYSDIR)/gui/usr/bin/mkfontdir

IMAGELIBS = $(LIBXPM) $(LIBJPEG) $(LIBPNG) $(LIBGIF) $(LIBTIFF) 
XORGLIBS =  $(LIBXEXT) $(LIBXRENDER) $(LIBXRANDR) $(FONTCONFIG) $(LIBXFT) 
WINDOWMANAGER = $(LIBEXPAT) $(JWM) 
TERMINAL = $(RXVT) $(TERMINFO)  #  $(SYSDIR)/gui/usr/bin/hterm
XORGUTILS = $(XINIT) $(SETXKBMAP) $(XRANDR) $(XSET)  $(MKFONTSCALE) $(MKFONTDIR) 

$(XORG_IMPORTANT):  $(IMAGELIBS)  $(XORGLIBS)  $(WINDOWMANAGER)  $(TERMINAL)  $(XORGUTILS)
	$(CP) $(RUNCFGDIR)/gui/xorg-important/startx  $(SYSDIR)/gui/usr/bin/
	@echo " "

#IMAGE-FORMATS' LIBRARIES:
LIBXPM_VER=3.5.10
$(LIBXPM):  #  $(XORG_BASE)
	@echo "                                                          Compiling XORG important additional binaries (libXpm,libjpeg,libpng,JWM,rxvt,setxkbmap,xrandr,xinit,startx)... "	
	$(RM) $(MADEDIR)/libXpm-$(LIBXPM_VER) $(IMDIR)/libXpm-$(LIBXPM_VER)  ;  $(UNTAR) $(SRCDIR)/gui/xorg-important/libXpm-$(LIBXPM_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/libXpm-$(LIBXPM_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/libXpm-$(LIBXPM_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	$(CD) $(MADEDIR)/libXpm-$(LIBXPM_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libXpm.so* $(SYSDIR)/gui/usr/lib/
LIBJPEG_VER=9a
$(LIBJPEG):  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/jpeg-$(LIBJPEG_VER) $(IMDIR)/jpeg-$(LIBJPEG_VER)  ;  $(UNTAR) $(SRCDIR)/gui/xorg-important/jpegsrc.v$(LIBJPEG_VER).tar.gz -C $(IMDIR)
	$(CD) $(IMDIR)/jpeg-$(LIBJPEG_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/jpeg-$(LIBJPEG_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	$(CD) $(MADEDIR)/jpeg-$(LIBJPEG_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libjpeg.so* $(SYSDIR)/gui/usr/lib/
LIBPNG_VER=1.6.16
$(LIBPNG):  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/libpng-$(LIBPNG_VER) $(IMDIR)/libpng-$(LIBPNG_VER)  ;  $(UNTAR) $(SRCDIR)/gui/xorg-important/libpng-$(LIBPNG_VER).tar.xz -C $(IMDIR)
	$(CD) $(IMDIR)/libpng-$(LIBPNG_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/libpng-$(LIBPNG_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	$(CD) $(MADEDIR)/libpng-$(LIBPNG_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) *.so* $(SYSDIR)/gui/usr/lib/
LIBGIF_VER=5.1.1
$(LIBGIF):  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/giflib-$(LIBGIF_VER) $(IMDIR)/giflib-$(LIBGIF_VER)  ;  $(UNTAR) $(SRCDIR)/gui/xorg-important/giflib-$(LIBGIF_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/giflib-$(LIBGIF_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/giflib-$(LIBGIF_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	$(CD) $(MADEDIR)/giflib-$(LIBGIF_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libgif.so* $(SYSDIR)/gui/usr/lib/
LIBTIFF_VER=3.8.2
$(LIBTIFF):  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/tiff-$(LIBTIFF_VER) $(IMDIR)/tiff-$(LIBTIFF_VER)  ;  $(UNTAR) $(SRCDIR)/gui/xorg-important/tiff-$(LIBTIFF_VER).tar.gz -C $(IMDIR)
	$(CD) $(IMDIR)/tiff-$(LIBTIFF_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/tiff-$(LIBTIFF_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	$(CD) $(MADEDIR)/tiff-$(LIBTIFF_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libtiff.so* $(SYSDIR)/gui/usr/lib/

#IMPORTANT XORG-EXTENSIONS (mainly for window-manager):
LIBXEXT_VER=1.3.1
$(LIBXEXT): $(CFGDIR)/gui/xorg-important/libXext-$(LIBXEXT_VER).cfg  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/libXext-$(LIBXEXT_VER) $(IMDIR)/libXext-$(LIBXEXT_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-important/libXext-$(LIBXEXT_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/libXext-$(LIBXEXT_VER)  ; sh $(CFGDIR)/gui/xorg-important/libXext-$(LIBXEXT_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/libXext-$(LIBXEXT_VER) install  ;  make DESTDIR=$(SYSROOT) install
	$(CD) $(MADEDIR)/libXext-$(LIBXEXT_VER)/usr/lib  ;  $(STRIP) *.so*  ;  $(CP) libXext.so* $(SYSDIR)/gui/usr/lib
LIBXRENDER_VER=0.9.7
$(LIBXRENDER):  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/libXrender-$(LIBXRENDER_VER) $(IMDIR)/libXrender-$(LIBXRENDER_VER)  ;  $(UNTAR) $(SRCDIR)/gui/xorg-important/libXrender-$(LIBXRENDER_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/libXrender-$(LIBXRENDER_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/libXrender-$(LIBXRENDER_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	$(CD) $(MADEDIR)/libXrender-$(LIBXRENDER_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libXrender.so* $(SYSDIR)/gui/usr/lib/
LIBXRANDR_VER=1.4.2
$(LIBXRANDR): # $(LIBXEXT) $(LIBXRENDER)  # $(XORG_BASE)
	$(RM) $(MADEDIR)/libXrandr-$(LIBXRANDR_VER) $(IMDIR)/libXrandr-$(LIBXRANDR_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-important/libXrandr-$(LIBXRANDR_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/libXrandr-$(LIBXRANDR_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/libXrandr-$(LIBXRANDR_VER) install  ;  make DESTDIR=$(SYSROOT) install
	$(CD) $(MADEDIR)/libXrandr-$(LIBXRANDR_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libXrandr.so* $(SYSDIR)/gui/usr/lib/
FONTCONFIG_VER=2.11.1
$(FONTCONFIG):  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/fontconfig-$(FONTCONFIG_VER) $(IMDIR)/fontconfig-$(FONTCONFIG_VER)  ;  $(UNTAR) $(SRCDIR)/gui/xorg-important/fontconfig-$(FONTCONFIG_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/fontconfig-$(FONTCONFIG_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/fontconfig-$(FONTCONFIG_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	$(CD) $(MADEDIR)/fontconfig-$(FONTCONFIG_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libfontconfig.so* $(SYSDIR)/gui/usr/lib/
LIBXFT_VER=2.3.2
$(LIBXFT): $(FONTCONFIG)  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/libXft-$(LIBXFT_VER) $(IMDIR)/libXft-$(LIBXFT_VER)  ;  $(UNTAR) $(SRCDIR)/gui/xorg-important/libXft-$(LIBXFT_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/libXft-$(LIBXFT_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/libXft-$(LIBXFT_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	$(CD) $(MADEDIR)/libXft-$(LIBXFT_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libXft.so* $(SYSDIR)/gui/usr/lib/
#interestingly libXt is needed at compile-time by RXVT, but not used at runtime
LIBICE_VER=1.0.8
LIBSM_VER=1.2.1
LIBXT_VER=1.1.3
$(LIBXT_INC): $(CFGDIR)/gui/xorg-minidesktop/themeing/libXt-$(LIBXT_VER).cfg $(CFGDIR)/gui/xorg-minidesktop/themeing/libSM-$(LIBSM_VER).cfg $(CFGDIR)/gui/xorg-minidesktop/themeing/libICE-$(LIBICE_VER).cfg  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/libICE-$(LIBICE_VER) $(IMDIR)/libICE-$(LIBICE_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-minidesktop/themeing/libICE-$(LIBICE_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/libICE-$(LIBICE_VER)  ;  sh $(CFGDIR)/gui/xorg-minidesktop/themeing/libICE-$(LIBICE_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/libICE-$(LIBICE_VER) install  ;  make DESTDIR=$(SYSROOT) install
	$(RM) $(MADEDIR)/libSM-$(LIBSM_VER) $(IMDIR)/libSM-$(LIBSM_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-minidesktop/themeing/libSM-$(LIBSM_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/libSM-$(LIBSM_VER)  ;  sh $(CFGDIR)/gui/xorg-minidesktop/themeing/libSM-$(LIBSM_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/libSM-$(LIBSM_VER) install  ;  make DESTDIR=$(SYSROOT) install
	$(RM) $(MADEDIR)/libXt-$(LIBXT_VER) $(IMDIR)/libXt-$(LIBXT_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-minidesktop/themeing/libXt-$(LIBXT_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/libXt-$(LIBXT_VER)  ;  sh $(CFGDIR)/gui/xorg-minidesktop/themeing/libXt-$(LIBXT_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/libXt-$(LIBXT_VER) install  ;  make DESTDIR=$(SYSROOT) install
#xset needs libXmuu (jwm can use libXmu but it's not important for it):
LIBXMU_VER=1.1.2
$(LIBXMUU): $(LIBXT_INC) $(CFGDIR)/gui/xorg-minidesktop/libXmu-$(LIBXMU_VER).cfg  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/libXmu-$(LIBXMU_VER) $(IMDIR)/libXmu-$(LIBXMU_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-minidesktop/libXmu-$(LIBXMU_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/libXmu-$(LIBXMU_VER)  ;  sh  $(CFGDIR)/gui/xorg-minidesktop/libXmu-$(LIBXMU_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/libXmu-$(LIBXMU_VER) install  ;  make DESTDIR=$(SYSROOT) install 
	$(CD) $(MADEDIR)/libXmu-$(LIBXMU_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libXmuu.so* $(SYSDIR)/gui/usr/lib/

#WINDOW-MANAGER(S):
JWM_VER=2.3.2
$(JWM): $(CFGDIR)/gui/xorg-important/jwm-$(JWM_VER).cfg $(LIBXPM) $(LIBJPEG) $(LIBPNG) $(LIBXEXT) $(LIBXRENDER) $(LIBXFT) # $(LIBEXPAT)  #  $(XORG_BASE) 
	$(RM) $(MADEDIR)/jwm-$(JWM_VER) $(IMDIR)/jwm-$(JWM_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-important/jwm-$(JWM_VER).tar.xz -C $(IMDIR) ; 
	$(CD) $(IMDIR)/jwm-$(JWM_VER)  ;  $(PATCH) -i $(CFGDIR)/gui/xorg-important/jwm-$(JWM_VER)-disable_taskbar_popups.patch  ;  \
     $(PATCH) -i $(CFGDIR)/gui/xorg-important/jwm-$(JWM_VER)-disable_titlebar_scrollwheel_shade.patch ; $(PATCH) -i $(CFGDIR)/gui/xorg-important/jwm-$(JWM_VER)-disable_taskbar_scrollwheel_focuschange.patch  ;  \
     #$(PATCH) -i $(CFGDIR)/gui/xorg-important/jwm-$(JWM_VER)-titlebar_buttons_full_height_sensitive.patch
	#$(CD) $(CFGDIR)/gui/xorg-important/  ;  $(CP) jwm-LINGUAS $(IMDIR)/jwm-$(JWM_VER)/po/LINGUAS  ;  $(CP) jwm-$(JWM_VER)-hu.po $(IMDIR)/jwm-$(JWM_VER)/po/hu.po
	$(CD) $(IMDIR)/jwm-$(JWM_VER)  ; sh $(CFGDIR)/gui/xorg-important/jwm-$(JWM_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/jwm-$(JWM_VER) install
	$(CD) $(MADEDIR)/jwm-$(JWM_VER)/usr/bin/  ;  $(STRIP) jwm  ;  $(CP) jwm $(SYSDIR)/gui/usr/bin/  ;  $(CP) $(RUNCFGDIR)/gui/xorg-important/system.jwmrc $(SYSDIR)/gui/etc/system.jwmrc

#TERMINAL-EMULATOR(S):
RXVT_VER=2.7.10
$(RXVT): $(CFGDIR)/gui/xorg-important/rxvt-$(RXVT_VER).cfg $(LIBXT_INC)  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/rxvt-$(RXVT_VER) $(IMDIR)/rxvt-$(RXVT_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-important/rxvt-$(RXVT_VER).tar.gz -C $(IMDIR)
	$(CD) $(IMDIR)/rxvt-$(RXVT_VER)  ; sh $(CFGDIR)/gui/xorg-important/rxvt-$(RXVT_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/rxvt-$(RXVT_VER) install
	$(CD) $(MADEDIR)/rxvt-$(RXVT_VER)/usr/bin/  ;  $(STRIP) rxvt  ;  $(CP) rxvt $(SYSDIR)/gui/usr/bin/ 
$(TERMINFO):
	-$(MD) $(SYSDIR)/gui/usr/share/terminfo/r  ;  $(CP) $(MADEDIR)/ncurses-$(NCURSES_VER)/usr/share/terminfo/r/rxvt $(SYSDIR)/gui/usr/share/terminfo/r
	-$(MD) $(SYSDIR)/gui/usr/share/terminfo/x  ;  $(CP) $(MADEDIR)/ncurses-$(NCURSES_VER)/usr/share/terminfo/x/xterm $(SYSDIR)/gui/usr/share/terminfo/x
	-$(CP) $(MAINDIR)/runtimecfg/gui/xorg-important/hterm $(SYSDIR)/gui/usr/bin/

#MISC. IMPORTANT (BUILT-IN) XORG-UTILITIES:
XINIT_VER=1.3.4
$(XINIT): $(CFGDIR)/gui/xorg-important/xinit-$(XINIT_VER).cfg  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/xinit-$(XINIT_VER) $(IMDIR)/xinit-$(XINIT_VER)  ;  $(UNTAR) $(SRCDIR)/gui/xorg-important/xinit-$(XINIT_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/xinit-$(XINIT_VER)  ;  sh $(CFGDIR)/gui/xorg-important/xinit-$(XINIT_VER).cfg  ;  make  ;  make DESTDIR=$(MADEDIR)/xinit-$(XINIT_VER) install
	$(CD) $(MADEDIR)/xinit-$(XINIT_VER)/usr/bin  ;  $(STRIP) xinit  ;  $(CP) xinit $(SYSDIR)/gui/usr/bin/  ;  $(CP) $(RUNCFGDIR)/gui/xorg-important/xinitrc $(SYSDIR)/gui/etc/

SETXKBMAP_VER=1.3.0
$(SETXKBMAP):  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/setxkbmap-$(SETXKBMAP_VER) $(IMDIR)/setxkbmap-$(SETXKBMAP_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-important/setxkbmap-$(SETXKBMAP_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/setxkbmap-$(SETXKBMAP_VER)  ; ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/setxkbmap-$(SETXKBMAP_VER) install
	$(CD) $(MADEDIR)/setxkbmap-$(SETXKBMAP_VER)/usr/bin/  ;  $(STRIP) setxkbmap  ;  $(CP) setxkbmap $(SYSDIR)/gui/usr/bin/ 	

XRANDR_VER=1.4.3
$(XRANDR): $(LIBXRANDR) # $(LIBXEXT)  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/xrandr-$(XRANDR_VER) $(IMDIR)/xrandr-$(XRANDR_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-important/xrandr-$(XRANDR_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/xrandr-$(XRANDR_VER)  ; ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/xrandr-$(XRANDR_VER) install
	$(CD) $(MADEDIR)/xrandr-$(XRANDR_VER)/usr/bin/  ;  $(STRIP) xrandr  ;  $(CP) xrandr $(SYSDIR)/gui/usr/bin/ 		

XSET_VER=1.2.3
$(XSET):  $(LIBXMUU) # $(XHOST)  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/xset-$(XSET_VER) $(IMDIR)/xset-$(XSET_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-important/xset-$(XSET_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/xset-$(XSET_VER)  ; ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/xset-$(XSET_VER) install
	$(CD) $(MADEDIR)/xset-$(XSET_VER)/usr/bin/  ;  $(STRIP) xset  ;  $(CP) xset $(SYSDIR)/gui/usr/bin/ 

MKFONTSCALE_VER=1.1.2
$(MKFONTSCALE):  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/mkfontscale-$(MKFONTSCALE_VER) $(IMDIR)/mkfontscale-$(MKFONTSCALE_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-important/mkfontscale-$(MKFONTSCALE_VER).tar.gz -C $(IMDIR)
	$(CD) $(IMDIR)/mkfontscale-$(MKFONTSCALE_VER)  ; ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/mkfontscale-$(MKFONTSCALE_VER) install
	$(CD) $(MADEDIR)/mkfontscale-$(MKFONTSCALE_VER)/usr/bin/  ;  $(STRIP) mkfontscale  ;  $(CP) mkfontscale $(SYSDIR)/gui/usr/bin/ 		

MKFONTDIR_VER=1.0.7
$(MKFONTDIR):  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/mkfontdir-$(MKFONTDIR_VER) $(IMDIR)/mkfontdir-$(MKFONTDIR_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-important/mkfontdir-$(MKFONTDIR_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/mkfontdir-$(MKFONTDIR_VER)  ; ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/mkfontdir-$(MKFONTDIR_VER) install
	$(CD) $(MADEDIR)/mkfontdir-$(MKFONTDIR_VER)/usr/bin/  ;  $(STRIP) mkfontdir  ;  $(CP) mkfontdir $(SYSDIR)/gui/usr/bin/ 		


#----------------------------------------------------DESKTOP-ENVIRONMENT-BASIC (with the smallest but comprehensive set of desktop-programs and graphic-contents)
#desktop-graphic-contents
BASIC_FONTS=$(SYSDIR)/gui/usr/share/fonts
BASIC_MOUSECURSORS=$(SYSDIR)/gui/usr/share/icons/BASE
BASIC_WALLPAPERS=$(SYSDIR)/gui/usr/share/pixmaps/backgrounds
BASIC_ICON_THEMES=$(SYSDIR)/gui/usr/share/icons/herminux
#themeing support (fonts,colours,icons,mousecursors,screensavers):
LIBXFIXES=$(SYSDIR)/gui/usr/lib/libXfixes.so
LIBXCURSOR=$(SYSDIR)/gui/usr/lib/libXcursor.so
LIBXINERAMA=$(SYSDIR)/gui/usr/lib/libXinerama.so
LIBSM=$(SYSDIR)/gui/usr/lib/libSM.so
LIBXT=$(SYSDIR)/gui/usr/lib/libXt.so
LIBXMU=$(SYSDIR)/gui/usr/lib/libxmu.so
XLOCKMORE=$(SYSDIR)/gui/usr/bin/xlock
XSCREENSAVER=$(SYSDIR)/gui/usr/bin/screensavers
XTACY=$(SYSDIR)/gui/usr/bin/xtacy
#uncomment one of these lines depending on which screen-saver to build:
#BASIC_SCREENSAVER=$(XTACY)
#BASIC_SCREENSAVER=$(LIBXINERAMA) $(LIBSM) $(XLOCKMORE)
BASIC_SCREENSAVER=$(LIBXINERAMA) $(LIBSM) $(LIBXT) $(XSCREENSAVER)

#targets of xorg-utilities:
IMAKE=$(SYSROOT)/usr/local/bin/xmkmf
XAPPLAUNCH=$(SYSDIR)/gui/usr/bin/xapplaunch  # needs Motif or Xaw!
XLOAD=$(SYSDIR)/gui/usr/bin/xload

#system utilities (partly Bash/Lua/TCL/perl/python/ruby scripts controlling GUIs - write or take from other OS like Puppy/Slitaz Linux or GTK-LXDE):
APPLAUNCHER=  # would be xapplaunch or similar (some window-managers have one)
CPULOAD=$(XLOAD)  # xload/wmcpuload/etc.
TASKMANAGER=  # something like 'top' for X11
CALCULATOR=$(XCALC)  # or a better one for X11, maybe fox fxcalc or gtk-based gcalc
CLOCK=$(OCLOCK)  # display (and set?) time
MOUNTER=  # better as trayicon, maybe as desktop-icons 
FILEBROWSER=  # xnc? fox-pathfinder/xfe?, gtk-rox/pcmanfm/thunar?  (allow icons at desktop)
SCREENSHOT=$(SCROT)  # Scrot or XWD (or fbgrab?)
MAGNIFIER=$(XMAG)  # xmag or a better one with realtime update
MOUSEFINDER=$(XEYES)  # xeyes or other that
FONTVIEWER=$(SHOWFONT)  # showfont/xfontsel/xlsfonts, font-installer / font-editor
CLIPBOARD=$(XCLIPBOARD)  # xclipboard or else, better as tray-applet, Puppy has one too
#settings:
SETACCOUNT= # create user accounts, manage passwords (useradd/passwd)
SETVOLUME=$(WMSMIXER) # wmsmixer or alsamixer in terminal
SETRESO=  # xrandr-based(PC?) or fbset-based (raspberry?), depending on used kernel-driver
SETKEYLAYOUT=  # might be set by language?
SETMOUSE= # speed, shape/theme, left/right-handed, etc.
SETLANGUAGE=  # set whole locale too? (codepage/UTF8 charset, currency, timezone, keylayout, sorting, etc.)
SETTHEMES=  # should be custom - mouses, JWM fonts and window-decorations & Icon-themes
SETWALLPAPER=  # don't forget screensavers(-root) and xearth/xplanet as extra animated wallpapers
SETSCREENSAVER=  # should be custom, as others depends on libraries - involve sets of more screensaver-programs?
SETTIMEDATE=  # custom? set timezone (locale) too?
SETNETWORK=  # should be custom instead of networkmanager/netctl - for ppp, ethernet, wifi
#tray/dock-applets:
TRAYMIXER=  # there's a decent one for arch, called 'volumeicon' (though dependencies might come)
TRAYCPULOAD=  # something like xload fits into tray?
TRAYMEMLOAD=  # mem/disk/cpu/network load should be together - take from Puppy?
TRAYNETWORK=  # blinky? better have custom than netctl/etc. - Puppy's?
TRAYCLOCK=  # provided by JWM
TRAYBATTERY=  # blinky? (e.g. Puppy)
TRAYKEYLAYOUT=  # there's some for Puppy IIRC
TRAYMOUNTER=  # exists any?
TRAYCLIPBOARD=  # shomething is in Puppy-linux
#desktop system-applications:
FILEMANAGER=  # mc/worker or similar
FILESEARCH= # searches for files, maybe contents too, maybe looking into archives too?
DESKTOPSEARCH= # searches text content (like google, but on local disk)
CDWRITER=  # cdrtools with small GUI frontend
PARTITIONER=  # parted X frontend?
INSTALLER=  # put Herminux to a drive and write&set GRUB to MBR
#general desktop applications:
TEXTVIEWER=$(XMORE)  # xmore? - better be editor as well
EBOOKREADER=  # xpdf/epdfview? fbreader? (need an epub/pdf reader which remembers position/bookmarks for opened documents
TEXTEDITOR=  # xedit? gtk:scite/geany/beaver?
HELPREADER=$(XMAN)  # xman man-reader and chm-readers?
WORDPROCESSOR=  # abiword / other rtf-editor
SPREADSHEET=  # abs / gnumeric / siag
AUDIOPLAYER=  # for X11 without gtk2? (maybe xmms with gtk1)
VIDEOPLAYER=  # mplayer/vlc without gtk/qt?
SOUNDEDITOR=  # mhWaveEdit/ReZound/Audacity?
MIDIEDITOR=   # MIDItrk? SEQ24? Tutka?
WEBBROWSER=   # Links/Dillo/Netsurf/Midori?
MAILCLIENT=   # mutt/HerMail/TradeClient/sylpheed/thunderbird?
#games, emulators:
CHESSGAME=
SUDOKU=
MINERGAME=
MAHJONG=
RUBIKCUBE=
SPACEINVADERS=
PACMAN=
TETRIS=
AMOEBA=
CARDGAME=
MARIOGAME=
FPSGAME=
C64EMULATOR=
SNESEMULATOR=
DOSBOX=

GUISCRIPTER= # a scripting language (Bash/Lua/TinyPy/Tcl/Ruby/Perl/Vala/etc.) and a GUI-frontend (xtpanel/mtMintKit/TekUI/GraphApp/SDL/XForms/FLTK/FOX/JUCE/GTK1/etc.) for RAD
$(DESKTOP_ENV): $(BASIC_FONTS)  $(BASIC_MOUSECURSORS)  $(BASIC_WALLPAPERS)  $(BASIC_ICON_THEMES)  $(BASIC_SOUNDS)   $(LIBXFIXES) $(LIBXCURSOR)  $(BASIC_SCREENSAVER)  \
                $(GUISCRIPTER)    $(APPLAUNCHER) $(CPULOAD) $(TASKMANAGER) $(CALCULATOR) $(CLOCK) $(MOUNTER) $(FILEBROWSER) $(SCREENSHOT) $(MAGNIFIER) $(FONTVIEWER) $(CLIPBOARD)  \
                $(SETACCOUNT) $(SETVOLUME) $(SETRESO) $(SETKEYLAYOUT) $(SETLANGUAGE) $(SETTHEMES) $(SETWALLPAPER) $(SETSCREENSAVER) $(SETTIMEDATE) $(SETNETWORK)  \
                $(TRAYMIXER) $(TRAYCPULOAD) $(TRAYMEMLOAD) $(TRAYNETWORK) $(TRAYCLOCK) $(TRAYBATTERY) $(TRAYKEYLAYOUT) $(TRAYMOUNTER) $(TRAYCLIPBOARD)  \
                $(FILEMANAGER) $(CDWRITER) $(PARTITIONER) $(INSTALLER)  \
                $(TEXTVIEWER) $(EBOOKREADER) $(TEXTEDITOR) $(HELPREADER) $(WORDPROCESSOR) $(SPREADSHEET) $(AUDIOPLAYER) $(VIDEOPLAYER) $(SOUNDEDITOR) $(WEBBROWSER) $(MAILCLIENT)  # $(TERMINAL)


$(BASIC_FONTS):
	$(UNTAR) $(MAINDIR)/media/fonts-herminux.tar.xz -C $(SYSDIR)/gui/
$(BASIC_MOUSECURSORS):
	$(UNTAR) $(MAINDIR)/media/cursorthemes-herminux.tar.xz -C $(SYSDIR)/gui/
$(BASIC_WALLPAPERS):
	$(UNTAR) $(MAINDIR)/media/wallpapers-herminux.tar.xz -C $(SYSDIR)/gui/
 #xearth / xplanet (animated planet Earth as desktop-background)
$(BASIC_ICON_THEMES):
	$(MD) $(SYSDIR)/gui/usr/share/icons/herminux  ;  $(CP) $(MAINDIR)/media/iconthemes/herminux/*.* $(SYSDIR)/gui/usr/share/icons/herminux


#XORG-DESKTOP-ENVIRONMENT-LIBRARIES:   libXt is needed by xscreensaver, libSM by xlock... if using xtacy or other small screensaver, they're not needed (see BASIC_SCREENSAVER variable above)
LIBXFIXES_VER=5.0
$(LIBXFIXES):  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/libXfixes-$(LIBXFIXES_VER) $(IMDIR)/libXfixes-$(LIBXFIXES_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-minidesktop/themeing/libXfixes-$(LIBXFIXES_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/libXfixes-$(LIBXFIXES_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/libXfixes-$(LIBXFIXES_VER) install  ;  make DESTDIR=$(SYSROOT) install
	$(CD) $(MADEDIR)/libXfixes-$(LIBXFIXES_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libXfixes.so* $(SYSDIR)/gui/usr/lib/
LIBXCURSOR_VER=1.1.13
$(LIBXCURSOR):  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/libXcursor-$(LIBXCURSOR_VER) $(IMDIR)/libXcursor-$(LIBXCURSOR_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-minidesktop/themeing/libXcursor-$(LIBXCURSOR_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/libXcursor-$(LIBXCURSOR_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/libXcursor-$(LIBXCURSOR_VER) install  ;  make DESTDIR=$(SYSROOT) install
	$(CD) $(MADEDIR)/libXcursor-$(LIBXCURSOR_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libXcursor.so* $(SYSDIR)/gui/usr/lib/
LIBXINERAMA_VER=1.1.2
$(LIBXINERAMA):
	$(RM) $(MADEDIR)/libXinerama-$(LIBXINERAMA_VER) $(IMDIR)/libXinerama-$(LIBXINERAMA_VER) ; $(UNTAR) $(SRCDIR)/gui/xorg-minidesktop/themeing/libXinerama-$(LIBXINERAMA_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/libXinerama-$(LIBXINERAMA_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/libXinerama-$(LIBXINERAMA_VER) install  ;  make DESTDIR=$(SYSROOT) install
	$(CD) $(MADEDIR)/libXinerama-$(LIBXINERAMA_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libXinerama.so* $(SYSDIR)/gui/usr/lib/
$(LIBSM): $(LIBXT_INC)
	$(CD) $(MADEDIR)/libICE-$(LIBICE_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libICE.so* $(SYSDIR)/gui/usr/lib/
	$(CD) $(MADEDIR)/libSM-$(LIBSM_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libSM.so* $(SYSDIR)/gui/usr/lib/
LIBXT_VER=1.1.3
$(LIBXT): $(LIBXT_INC) $(LIBSM)
	$(CD) $(MADEDIR)/libXt-$(LIBXT_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libXt.so* $(SYSDIR)/gui/usr/lib/
$(LIBXMU): $(LIBXMUU)  #  $(XORG_BASE) #( libXmu might be needed by libXaw - Athena Widget Toolkit )
	$(CP) $(MADEDIR)/libXmu-$(LIBXMU_VER)/usr/lib/libXmu.so* $(SYSDIR)/gui/usr/lib/

#SCREENSAVERS:
XTACY_VER=1.14
$(XTACY):  #  $(XORG_BASE)
	$(RM) $(MADEDIR)/xtacy-$(XTACY_VER) $(IMDIR)/xtacy-$(XTACY_VER)  ;  $(UNTAR) $(SRCDIR)/gui/xorg-minidesktop/themeing/xtacy-$(XTACY_VER).tar.bz2 -C $(IMDIR)
	$(CP) $(CFGDIR)/gui/xorg-minidesktop/themeing/xtacy-$(XTACY_VER).Makefile $(IMDIR)/xtacy-$(XTACY_VER)/Makefile ;  $(CD) $(IMDIR)/xtacy-$(XTACY_VER)  ;  make  ;  $(STRIP) xtacy  ;  $(CP) xtacy $(SYSDIR)/gui/usr/bin/
XLOCKMORE_VER=5.46
$(XLOCKMORE):  #  $(LIBSM) $(LIBXDMCP) $(LIBXRANDR) $(LIBXINERAMA)
	$(RM) $(MADEDIR)/xlockmore-$(XLOCKMORE_VER) $(IMDIR)/xlockmore-$(XLOCKMORE_VER)  ;  $(UNTAR) $(SRCDIR)/gui/xorg-minidesktop/themeing/xlockmore-$(XLOCKMORE_VER).tar.xz -C $(IMDIR)
	$(CD) $(IMDIR)/xlockmore-$(XLOCKMORE_VER)  ;  sh $(CFGDIR)/gui/xorg-minidesktop/themeing/xlockmore-$(XLOCKMORE_VER).cfg  ;  make  ;  \
	  $(CD) $(IMDIR)/xlockmore-$(XLOCKMORE_VER)  ;  $(STRIP) xlock/xlock  ;  $(CP) xlock/xlock $(SYSDIR)/gui/usr/bin/
XSCREENSAVER_VER=5.32
$(XSCREENSAVER):  #  $(LIBXT) $(LIBXDMCP) $(LIBXRANDR) $(LIBXINERAMA) #xscreensaver itself can't be run as root, but the independent 'hacks' can be run as root
	$(RM) $(MADEDIR)/xscreensaver-$(XSCREENSAVER_VER) $(IMDIR)/xscreensaver-$(XSCREENSAVER_VER)  ;  $(UNTAR) $(SRCDIR)/gui/xorg-minidesktop/themeing/xscreensaver-$(XSCREENSAVER_VER).tar.gz -C $(IMDIR)
	$(CD) $(IMDIR)/xscreensaver-$(XSCREENSAVER_VER)  ;  sh $(CFGDIR)/gui/xorg-minidesktop/themeing/xscreensaver-$(XSCREENSAVER_VER).cfg  ;  make  ;  \
	$(MD) $(SYSDIR)/gui/usr/bin/screensavers  ;  $(CD) $(IMDIR)/xscreensaver-$(XSCREENSAVER_VER)/hacks  ;  $(STRIP) *  ;  \
	  $(CP) anemone attraction binaryring blaster bouboule boxfit bumps compass coral decayscreen deluxe distort eruption euler2d fadeplot fiberlamp fireworkx fluidballs fuzzyflakes galaxy goop halftone  \
	  halo ifs interference intermomentary julia kaleidescope kumppa maze metaballs moire nerverot phosphor piecewise popsquares pyro  \
	  rocks shadebobs slidescreen slip speedmine spotlight squiral starfish strange vermiculate wander whirlwindwarp wormhole xanalogtv xflame xrayswarm  $(SYSDIR)/gui/usr/bin/screensavers/


#small desktop utilities:


XLOAD_VER=1.1.2
$(XLOAD):
	



#----------------------------------------------------DESKTOP-ENVIRONMENT-FULL (made using the all graphic contents and some extra toolkits & programs below, built upon basic desktop-environment)

#$(DESKTOP_FULL): $(HARFBUZZ) $(XMODMAP) $(XBACKLIGHT) $(TRANSSET) $(XREFRESH) $(XVINFO) # $(LIBXAW)  #  $(XORG_BASE)
	





#====================================================PROGRAMS==========================================================
#libraries for programs:
GLIB_VER=2.42.2
GLIB=$(MADEDIR)/glib-$(GLIB_VER)
PCRE_VER=8.36
PCRE=$(MADEDIR)/pcre-$(PCRE_VER)
IMLIB2_VER=1.4.7
IMLIB2=$(MADEDIR)/imlib2-$(IMLIB2_VER)
LIBEXIF_VER=0.6.21
LIBEXIF=$(MADEDIR)/libexif-$(LIBEXIF_VER)

#applications (program-packages) themselves (containing library dependencies and contents it the tarballs):
MC_VER=4.8.13
MCPROG=$(PRGDIR)/base/mc-$(MC_VER)-$(PKGTAIL)
EXTUNDELETE_VER=0.2.4
EXTUNDELETE=$(PRGDIR)/base/extundelete-$(EXTUNDELETE_VER)-$(PKGTAIL)
SXIV_VER=1.3.1
#$(SXIV)=$(PRGDIR)/gui/sxiv-$(SXIV_VER)-$(PKGTAIL)
PPP_VER=master
PPP=$(PRGDIR)/base/ppp-$(PPP_VER)
ALSA_VER=1.0.29
ALSA=$(PRGDIR)/base/alsa-$(ALSA_VER)-$(PKGTAIL)
#xdaliclock,moonclock,xclock

programs: prepare_programs $(GLIB) $(PCRE) $(IMLIB2) $(LIBEXIF)  $(MCPROG) $(EXTUNDELETE)  $(PPP) $(LINKS)  $(ALSA)
	-$(CHMOD) 755 $(PRGDIR)/base/*
	#-$(CHMOD) 755 $(PRGDIR)/gui/*
	@echo " "	
prepare_programs:
	@echo " "
	@echo "                                                          Building the applications (basic programs for commandline base-system and for GUI-system) "	
	@echo "----------------------------------------------------------------------------------------------------------------------------------------------------"	
	$(MD) $(PRGDIR)/base $(PRGDIR)/gui
	@echo " "

#libraries for programs and GUI-toolkits:
#----------------------------------------

$(GLIB): $(CFGDIR)/proglibs/glib-$(GLIB_VER).cfg
	@echo "                                                          Compiling glib (libglib)... "
	$(RM) $(MADEDIR)/glib-$(GLIB_VER) $(IMDIR)/glib-$(GLIB_VER)  ;  $(UNTAR) $(SRCDIR)/proglibs/toolkits/glib-$(GLIB_VER).tar.xz -C $(IMDIR)	
	$(CD) $(IMDIR)/glib-$(GLIB_VER)  ;  sh $(CFGDIR)/proglibs/glib-$(GLIB_VER).cfg  ;  make  ;   make DESTDIR=$(MADEDIR)/glib-$(GLIB_VER) install 
	$(RMIM) $(IMDIR)/glib-$(GLIB_VER)

$(PCRE): $(CFGDIR)/proglibs/pcre-$(PCRE_VER).cfg
	@echo "                                                          Compiling pcre (libpcre)... "
	$(RM) $(MADEDIR)/pcre-$(PCRE_VER) $(IMDIR)/pcre-$(PCRE_VER)  ;  $(UNTAR) $(SRCDIR)/proglibs/document/pcre-$(PCRE_VER).tar.bz2 -C $(IMDIR)	
	$(CD) $(IMDIR)/pcre-$(PCRE_VER)  ;  sh $(CFGDIR)/proglibs/pcre-$(PCRE_VER).cfg  ;  make  ;   make DESTDIR=$(MADEDIR)/pcre-$(PCRE_VER) install

$(IMLIB2): $(CFGDIR)/proglibs/imlib2-$(IMLIB2_VER).cfg
	@echo "                                                          Compiling imlib2... "
	$(RM) $(MADEDIR)/imlib2-$(IMLIB2_VER) $(IMDIR)/imlib2-$(IMLIB2_VER)  ;  $(UNTAR) $(SRCDIR)/proglibs/graphics/imlib2-$(IMLIB2_VER).tar.bz2 -C $(IMDIR)	
	$(CD) $(IMDIR)/imlib2-$(IMLIB2_VER)  ;  sh $(CFGDIR)/proglibs/imlib2-$(IMLIB2_VER).cfg  ;  make  ;   make DESTDIR=$(MADEDIR)/imlib2-$(IMLIB2_VER) install  ;  make DESTDIR=$(SYSROOT) install 

$(LIBEXIF): $(CFGDIR)/proglibs/libexif-$(LIBEXIF_VER).cfg
	@echo "                                                          Compiling libexif... "
	$(RM) $(MADEDIR)/libexif-$(LIBEXIF_VER) $(IMDIR)/libexif-$(LIBEXIF_VER)  ;  $(UNTAR) $(SRCDIR)/proglibs/graphics/libexif-$(LIBEXIF_VER).tar.bz2 -C $(IMDIR)	
	$(CD) $(IMDIR)/libexif-$(LIBEXIF_VER)  ;  sh $(CFGDIR)/proglibs/libexif-$(LIBEXIF_VER).cfg  ;  make  ;   make DESTDIR=$(MADEDIR)/libexif-$(LIBEXIF_VER) install  ;  make DESTDIR=$(SYSROOT) install 


#programs themselves:
#--------------------

#disk-handling,file-managers:

$(MCPROG): $(CFGDIR)/programs/base/mc-$(MC_VER).cfg  #  $(GLIB)  $(PCRE)
	@echo "                                                          Compiling midnight-commander (mc)... "
	$(RM) $(MADEDIR)/mc-$(MC_VER) $(IMDIR)/mc-$(MC_VER) $(IMDIR)/mc-$(MC_VER)-$(ARCH)  ;  $(UNTAR) $(SRCDIR)/programs/base/disk/mc-$(MC_VER).tar.xz -C $(IMDIR)
	$(CD) $(IMDIR)/mc-$(MC_VER)  ;  sh $(CFGDIR)/programs/base/mc-$(MC_VER).cfg  ;  make  ;   make DESTDIR=$(MADEDIR)/mc-$(MC_VER) install 
	$(MD) $(IMDIR)/mc-$(MC_VER)-$(ARCH)  ;  $(CP) $(MADEDIR)/mc-$(MC_VER)/* $(IMDIR)/mc-$(MC_VER)-$(ARCH)/
	$(CD) $(IMDIR)/mc-$(MC_VER)-$(ARCH)  ;  $(MD) usr/lib  ;  $(STRIP) usr/local/bin/mc  ;  $(RM) usr/local/share/man usr/local/share/mc/examples usr/local/share/mc/hints  ;  \
	  $(CD) usr/local/share/mc  ;  $(MV) skins allskins  ;  $(MD) skins  ;  $(CD) allskins  ;  $(CP) default.ini gotar.ini ../skins  ;  $(RM) ../allskins
	$(CD) $(IMDIR)/mc-$(MC_VER)-$(ARCH)/usr/local/share/mc  ;  $(MV) syntax allsyntax  ;  $(MD) syntax  ;  $(CD) allsyntax  ;  $(CP) as.syntax assembler.syntax awk.syntax c.syntax   \
	  changelog.syntax cs.syntax css.syntax cxx.syntax diff.syntax filehighlight.syntax html.syntax ini.syntax java.syntax js.syntax latex.syntax lisp.syntax m4.syntax mail.syntax  \
	  makefile.syntax pascal.syntax perl.syntax po.syntax python.syntax ruby.syntax sh.syntax smalltalk.syntax sql.syntax Syntax syntax.syntax tcl.syntax unknown.syntax  \
	  verilog.syntax vhdl.syntax xml.syntax  ../syntax  ;  $(RM) ../allsyntax
	$(CP) $(MADEDIR)/glib-$(GLIB_VER)/usr/lib/libglib-2.0.so* $(MADEDIR)/pcre-$(PCRE_VER)/usr/local/lib/libpcre.so* $(IMDIR)/mc-$(MC_VER)-$(ARCH)/usr/lib  ;  $(STRIP) $(IMDIR)/mc-$(MC_VER)-$(ARCH)/usr/lib/*
	$(CD) $(RUNCFGDIR)/programs/base/mc  ;  $(CP) skins $(IMDIR)/mc-$(MC_VER)-$(ARCH)/usr/local/share/mc  ;  $(CP) mc.ext $(IMDIR)/mc-$(MC_VER)-$(ARCH)/etc/mc  ;  \
	  $(CP) root $(IMDIR)/mc-$(MC_VER)-$(ARCH)  ;  $(CP) extfs.d $(IMDIR)/mc-$(MC_VER)-$(ARCH)/usr/local/lib/mc 
	tar -cJf $(PRGDIR)/base/mc-$(MC_VER)-$(PKGTAIL) -C $(IMDIR)/mc-$(MC_VER)-$(ARCH) ./ 
	$(RMIM) $(IMDIR)/mc-$(MC_VER)

$(EXTUNDELETE):
	

#graphic viewers, editors:

$(SXIV):
	

#networking:

$(PPP):
	

$(LINKS):
	

#sound-related:

$(ALSA): $(CFGDIR)/programs/base/alsa-lib-$(ALSA_VER).cfg $(CFGDIR)/programs/base/alsa-utils-$(ALSA_VER).cfg  #  $(NCURSES)
	@echo "                                                          Compiling ALSA (libasound, alsamixer, etc. )... "	
	$(RM) $(MADEDIR)/alsa-lib-$(ALSA_VER) $(IMDIR)/alsa-lib-$(ALSA_VER)-$(ARCH)  ;  $(UNTAR) $(SRCDIR)/programs/base/audio/alsa-lib-$(ALSA_VER).tar.bz2 -C $(IMDIR)		
	$(CD) $(IMDIR)/alsa-lib-$(ALSA_VER)  ;  sh $(CFGDIR)/programs/base/alsa-lib-$(ALSA_VER).cfg  ;  make  ;   make DESTDIR=$(MADEDIR)/alsa-lib-$(ALSA_VER) install  ;  make DESTDIR=$(SYSROOT) install
	$(RM) $(MADEDIR)/alsa-utils-$(ALSA_VER) $(IMDIR)/alsa-utils-$(ALSA_VER)-$(ARCH)  ;  $(UNTAR) $(SRCDIR)/programs/base/audio/alsa-utils-$(ALSA_VER).tar.bz2 -C $(IMDIR)		
	$(CD) $(IMDIR)/alsa-utils-$(ALSA_VER)  ;  sh $(CFGDIR)/programs/base/alsa-utils-$(ALSA_VER).cfg  ;  make  ;   make DESTDIR=$(MADEDIR)/alsa-utils-$(ALSA_VER) install 
	$(MD) $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/lib/alsa-lib/smixer  ;  $(CP) $(MADEDIR)/alsa-lib-$(ALSA_VER)/usr/bin $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/  ;  $(STRIP) $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/bin/*
	$(CP) $(MADEDIR)/alsa-lib-$(ALSA_VER)/usr/lib/libasound.so* $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/lib  ;  $(STRIP) $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/lib/*.so*
	$(CP) $(MADEDIR)/alsa-lib-$(ALSA_VER)/usr/lib/alsa-lib/smixer/*.so $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/lib/alsa-lib/smixer/  ; $(STRIP) $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/lib/alsa-lib/smixer/*.so*
	$(MD) $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/share  ;  $(CP) $(MADEDIR)/alsa-lib-$(ALSA_VER)/usr/share/alsa $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/share
	$(CD) $(MADEDIR)/alsa-utils-$(ALSA_VER)/usr/bin  ;  $(CP) alsamixer amixer aplay $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/bin  ;  $(STRIP) $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/bin/*
	$(CD) $(MADEDIR)/ncurses-$(NCURSES_VER)/usr/lib  ;  $(CP) libformw.so* libmenuw.so* libpanelw.so* $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/lib  ;  $(STRIP) $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH)/usr/lib/*.so*
	tar -cJf $(PRGDIR)/base/alsa-$(ALSA_VER)-$(PKGTAIL) -C $(IMDIR)/alsa-$(ALSA_VER)-$(ARCH) ./ 




#----------------------------------------------------DEVHEADERS-----------------------------------------------------------
devheaders: prepare
	#$(MD) $(DEVDIR)/toolkits 
	@echo " "


#----------------------------------------------------DOCUMENTS-----------------------------------------------------------
documents: prepare
	$(MD) $(DOCDIR)/usr/share/man $(DOCDIR)/usr/share/doc $(DOCDIR)/usr/share/info $(DOCDIR)/usr/share/licenses
	@echo " "


#----------------------------------------------------LOCALES-----------------------------------------------------------
locales: prepare
	$(MD) $(LOCALEDIR)/usr/share/locale
	@echo " "


#----------------------------------------------------TOOLCHAIN-----------------------------------------------------------
BINUTILS_VER=2.24
BINUTILS=$(MADEDIR)/binutils-$(BINUTILS_VER)
EXPAT_VER=2.1.0
EXPAT=$(MADEDIR)/expat-$(EXPAT_VER)

toolchain: prepare $(GCC) $(EXPAT) $(IMAKE)
	@echo " "

$(BINUTILS): $(CFGDIR)/toolchain/binutils-$(BINUTILS_VER).cfg
	@echo "                                                          Compiling binutils (ar, strip, etc...) "	
	$(RM) $(MADEDIR)/binutils-$(BINUTILS_VER) $(IMDIR)/binutils-$(BINUTILS_VER) $(IMDIR)/binutils-$(BINUTILS_VER)-$(ARCH)  ; 
	$(UNTAR) $(SRCDIR)/toolchain/binutils-$(BINUTILS_VER).tar.bz2 -C $(IMDIR)  ;  $(CD) $(IMDIR)/binutils-$(BINUTILS_VER)  ;  \
	  $(PATCH) -i $(CFGDIR)/toolchain/binutils-$(BINUTILS_VER)-load_gcc_lto_plugin_by_default-1.patch  ;  $(PATCH) -i $(CFGDIR)/toolchain/binutils-$(BINUTILS_VER)-lto_testsuite-1.patch  ;  \
	  sh $(CFGDIR)/toolchain/binutils-$(BINUTILS_VER).cfg  ;  make  ;   make DESTDIR=$(MADEDIR)/binutils-$(BINUTILS_VER) install  
	$(RMIM) $(IMDIR)/binutils-$(BINUTILS_VER)

$(GCC): $(CFGDIR)/toolchain/gcc-$(GCC_VER).cfg
	@echo "                                                          Compiling gcc (GNU-Compiler-Collection: libstdc++, libgcc_s, etc...) "	
	$(RM) $(MADEDIR)/gcc-$(GCC_VER) $(IMDIR)/gcc-$(GCC_VER) $(IMDIR)/gcc-$(GCC_VER)-$(ARCH)  ;  $(UNTAR) $(SRCDIR)/toolchain/gcc-$(GCC_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/gcc-$(GCC_VER)  ;  $(PATCH) -i $(CFGDIR)/toolchain/gcc-$(GCC_VER)-upstream_fixes-1.patch  ;  \
	  sh $(CFGDIR)/toolchain/gcc-$(GCC_VER).cfg  ;  make ARCH=$(ARCH)  ;   make DESTDIR=$(MADEDIR)/gcc-$(GCC_VER) install 
	$(RMIM) $(IMDIR)/gcc-$(GCC_VER)

$(EXPAT):
	$(RM) $(MADEDIR)/expat-$(EXPAT_VER) $(IMDIR)/expat-$(EXPAT_VER)  ;  $(UNTAR) $(SRCDIR)/toolchain/expat-$(EXPAT_VER).tar.gz -C $(IMDIR)
	$(CD) $(IMDIR)/expat-$(EXPAT_VER)  ;  ./configure --prefix=/usr  ;  make  ;  make DESTDIR=$(MADEDIR)/expat-$(EXPAT_VER) install  ;  make DESTDIR=$(SYSROOT) install 
$(LIBEXPAT): $(EXPAT)
	$(CD) $(MADEDIR)/expat-$(EXPAT_VER)/usr/lib/  ;  $(STRIP) *.so*  ;  $(CP) libexpat.so* $(SYSDIR)/gui/usr/lib/

IMAKE_VER=1.0.7
XORGCF_VER=1.0.5
$(IMAKE):
	$(RM) $(MADEDIR)/xorg-cf-files-$(XORGCF_VER) $(IMDIR)/xorg-cf-files-$(XORGCF_VER)  ;  $(UNTAR) $(SRCDIR)/toolchain/xorg-cf-files-$(XORGCF_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/xorg-cf-files-$(XORGCF_VER)  ;  ./configure  ;  make  ;  make DESTDIR=$(MADEDIR)/xorg-cf-files-$(XORGCF_VER) install  ;  make DESTDIR=$(SYSROOT) install
	$(RM) $(MADEDIR)/imake-$(IMAKE_VER) $(IMDIR)/imake-$(IMAKE_VER)  ;  $(UNTAR) $(SRCDIR)/toolchain/imake-$(IMAKE_VER).tar.bz2 -C $(IMDIR)
	$(CD) $(IMDIR)/imake-$(IMAKE_VER)  ;  ./configure  ;  make  ;  make DESTDIR=$(MADEDIR)/imake-$(IMAKE_VER) install  ;  make DESTDIR=$(SYSROOT) install


#----------------------------------------------------ARCHIVE-----------------------------------------------------------
archive: $(MAINDIR) $(SYSDIR)
	ls -R -1 -s -h -p -w 256 $(SRCDIR) > Herminux-sources.ls
	-$(PACKXZ) ../$(MAINDIR_REL)$(VER)-$(REV).tar.xz ../$(MAINDIR_REL)
	-$(PACKXZ) ../$(DISTRO)$(VER)-$(REV)-$(ARCH).tar.xz ../$(SYSDIR_REL)
	-$(PACKXZ) ../$(DISTRO)$(VER)-$(REV)-$(ARCH)-programs.tar.xz ../$(PRGDIR_REL)
	-$(PACKXZ) ../$(DISTRO)$(VER)-$(REV)-devheaders.tar.xz ../$(DEVDIR_REL)
	-$(PACKXZ) ../$(DISTRO)$(VER)-$(REV)-documents.tar.xz ../$(DOCDIR_REL)
	-$(PACKXZ) ../$(DISTRO)$(VER)-$(REV)-locales.tar.xz ../$(LOCALEDIR_REL)
	@echo " "

packsrc:
	tar -cf ../$(SRCDIR_REL).tar ../$(SRCDIR_REL)


#----------------------------------------------------INSTALL-----------------------------------------------------------
install:
	@echo "                                                          Installing Herminux-$(ARCH) to /dev/$(INSPART)"	
	sh install-herminux.sh $(SYSDIR) $(INSPART)
	@echo " "


#----------------------------------------------------CLEAN,PURGE-----------------------------------------------
clean:
	$(RM) $(IMDIR)
	@echo " "

purge: clean
	$(RM)  $(SYSDIR) $(PRGDIR) $(MADEDIR) $(DEVDIR) $(DOCDIR) $(LOCALEDIR) $(TOOLDIR)
	@echo " "


#==========================================================================================
