summaryrefslogtreecommitdiff
path: root/410guests/guests.mk
blob: 503f4259a5fa2277c69d25572916bf3199817cf3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Add hooks to push {very,}clean down into the guests
GUEST_CLEAN=for g in $(STUDENTGUESTS); do make -C $(STUGDIR)/$$g clean; done
GUEST_VERYCLEAN=for g in $(STUDENTGUESTS); do make -C $(STUGDIR)/$$g veryclean; done
GUEST_UPDATE=for g in $(STUDENTGUESTS); do make -C $(STUGDIR)/$$g update; done

# Add guest images into the "ramdisk"
FILES+=$(STUDENTGUESTS)

# Having done the above hook, we'll get asked to make targets for
# $(BUILDDIR)/${GUEST}; here's how we do that, using (ick)
# recursive make.  We tell this make that these are .PHONY targets
# so that they always get rebuilt, because we don't have visibility
# into the dependency structure internally.  Probably, that will
# go quickly, and it's not like it takes us a long time to rebuild
# the ramdisk image in light of spurious changes.
.PHONY: $(STUDENTGUESTS:%=$(BUILDDIR)/%)
$(STUDENTGUESTS:%=$(BUILDDIR)/%) : $(BUILDDIR)/% :
	make -C $(STUGDIR)/$* kernel.strip
	mkdir -p $(BUILDDIR)
	cp -p $(STUGDIR)/$*/kernel.strip $@

# Add pre-compiled guest binaries into the "ramdisk"
FILES+=$(410GUESTBINS)

$(410GUESTBINS:%=$(BUILDDIR)/%): \
$(BUILDDIR)/%: $(410GDIR)/%.bin
	mkdir -p $(BUILDDIR)
	strip -o $@ $<