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-14 00:22:18 +01:00
|
|
|
# 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
|
2011-04-09 16:01:18 +02:00
|
|
|
chroot $(CHROOT) $(EMERGE) --select -n $(USEPKG) dev-lang/python:2.7
|
|
|
|
chroot $(CHROOT) eselect python set python2.7
|
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-14 00:22:18 +01:00
|
|
|
|
|
|
|
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:
|
|
|
|
|