virtual-appliance/lodgeit/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

29 lines
1.0 KiB
Makefile

# set up apache modules in make.conf
POST_FILES = lodgeit.sh 10_lodgeit.conf apache2.conf genkey.py lodgeit.wsgi
POST_FILES += issue
preinstall: make.conf.extra
cat make.conf.extra >> $(CHROOT)/etc/make.conf
postinstall: $(POST_FILES)
chroot $(CHROOT) $(EMERGE) -1n $(USEPKG) dev-vcs/mercurial
chroot $(CHROOT) $(EMERGE) -1n $(USEPKG) dev-python/virtualenv
chroot $(CHROOT) getent group lodgeit || chroot $(CHROOT) groupadd lodgeit
chroot $(CHROOT) getent passwd lodgeit || \
chroot $(CHROOT) useradd -c "Lodgeit Pastebin" -m -g lodgeit lodgeit
cp lodgeit.sh $(CHROOT)/tmp
chroot $(CHROOT) su -c /tmp/lodgeit.sh lodgeit
cp 10_lodgeit.conf $(CHROOT)/etc/apache2/vhosts.d
cp apache2.conf $(CHROOT)/etc/conf.d/apache2
python genkey.py $(CHROOT)
cp lodgeit.wsgi $(CHROOT)/home/lodgeit/lodgeitproject/lodgeit
cp issue $(CHROOT)/etc/issue
chroot $(CHROOT) rc-update add apache2 default
chroot $(CHROOT) $(EMERGE) -C dev-vcs/mercurial
chroot $(CHROOT) $(EMERGE) -C dev-python/virtualenv
chroot $(CHROOT) $(EMERGE) --depclean --with-bdeps=n
clean: