virtual-appliance/gnome/Makefile
Albert Hopkins e89d24ccfe I learned a lot about Makefiles :D
So, basically I re-architeched things a bit:

The appliance/Makefile.inc fiels are now appliance/Makefile (again). The
main Makefile will call "make -C appliance preinstall" and "postinstall"
(and in future "clean").  So I got rid of the ugly make variables/include
thing.  Some of the main Makefile's variables are exported to the
sub-makes.  Appliances don't really need $(APPLIANCE) anymore as the
appliance directory is their CWD.

Added some new targets and smarter targets.  I can do more with this, but
it's a big improvment from last time.  Still learning a lot of Makefile
magic (been reading other people's Makefiles).

Verified that "make -j3" works (at least on the base appliance) but will
kill your hard drive :D

Introduced "profiles"  Which are files with variables you want to override.
The file will be "include"ed by the main Makefile.  For example, I have a
file, "local.cfg" that looks like this:

--- 8< -----------------------------
CHROOT = /var/scratch/marduk/vabuild
HEADLESS = YES
PRUNE_CRITICAL = NO
VIRTIO = YES
TIMEZONE = EST5EDT
DISK_SIZE = 60.0G
SWAP_SIZE = 48
PKGDIR = /var/scratch/packages
NBD_DEV = /dev/nbd8

all: qcow
--- 8< ------------------------------

Then, e.g. i can run "make PROFILE=local APPLIANCE=kde".  If you don't
specify a PROFILE variable, then it will default to the empty string, which
means the main Makefile will attempt to include .cfg

So, for example i have:

   $ ln -s local.cfg .cfg
   $ make APPLIANCE=kde

Don't set PROFILE inside your .cfg file (why would you?).  Also, if the
[pro]file does not exist, the include fails silently.

I will put this info in the wiki eventually...
2010-11-13 18:22:18 -05:00

28 lines
1022 B
Makefile

ifneq ($(OVERLAY),YES)
DO_OVERLAY = \#
endif
# totem gst-inspect requires a machine id (generated by dbus). we
# don't have one yet because we are in a virgin chroot. fake one
preinstall:
mkdir -p "$(CHROOT)/var/lib/dbus"
echo 1234567890abcdef1234567890abcdef > \
"$(CHROOT)"/var/lib/dbus/machine-id
chroot "$(CHROOT)" $(EMERGE) $(USEPKG)-1n dev-util/pkgconfig
$(DO_OVERLAY) chroot $(CHROOT) $(EMERGE) $(USEPKG) -1n app-portage/layman
$(DO_OVERLAY) chroot $(CHROOT) $(EMERGE) $(USEPKG) -1n dev-vcs/git
$(DO_OVERLAY) chroot $(CHROOT) /usr/bin/layman --sync ALL
$(DO_OVERLAY) chroot $(CHROOT) /usr/bin/layman --add gnome
$(DO_OVERLAY) echo "source /var/lib/layman/make.conf" >> $(CHROOT)/etc/make.conf
$(DO_OVERLAY) echo USE='"$$USE clutter"' >> $(CHROOT)/etc/make.conf
postinstall: custom.conf
$(RM) "$(CHROOT)"/var/lib/dbus/machine-id
cp custom.conf "$(CHROOT)"/etc/X11/gdm/custom.conf
#chroot "$(CHROOT)" rc-update add hald default
echo 'gdm &>/dev/null' >> "$(CHROOT)"/etc/conf.d/local.start
clean: