build libs { target libfusd.a { libfusd/libfusd.c } target libfusdnet.a { fusdd/fusdd_client.c, fusdd/fusdd_socket.c } } build bins { local_libs { timesync/sync, emrun/emrun, fusd/fusdnet, libdev/dev, libmisc/misc, fusd/fusd } # DAEMON PROGRAMS target fusdd { fusdd/fusdd.c, fusdd/fusdd_main.c } # UTILITY PROGRAMS target fusdnet_client { fusdd/fusdd_client_main.c } # FusdNET daemon for launch from emrun target fusdnet_server { fusdd/fusdd_net_main.c, fusdd/fusdd_socket.c, fusdd/fusdd_server.c } } build bins { local_libs { timesync/sync, emrun/emrun, libdev/dev, libmisc/misc, fusd/fusd } simple-targets { # EXAMPLE PROGRAMS examples/binary-read.c, examples/console-read.c, examples/drums.c, examples/drums2.c, examples/drums3.c, examples/echo.c, examples/helloworld.c, examples/ioctl.c, examples/logring.c, examples/pager.c, examples/uid-filter.c, # TEST PROGRAMS test/devlimit.c, test/ioctl-test.c, test/openclose.c, test/openrace.c, test/openrace2.c, test/opentest.c, test/oracle.c, test/regdevice.c, test/rwtest.c, test/select_test.c, test/simpleopen.c, test/statetest.c, test/torturetest.c, test/zero-fusd.c, test/zombietest.c, test/zombietest2.c } } # Binaries that don't require libfusd build bins { target thruput { test/thruput.c } } # Kernel modules build objs if BUILD_KMODULES_24 { cflags := $(KCFLAGS) -D__KERNEL__ -DMODULE target kfusd.o { kfusd/kfusd.c } target zero.o { test/zero.c } } literal { $(OBJDIR)/fusd/kfusd.ko: ifeq ($(strip $(BUILD_KMODULES_26)),1) mkdir -p $(OBJDIR)/$(BUILDDIR)/fusd/kfusd26/ ln -sf ../../../fusd/include $(OBJDIR)/$(BUILDDIR)/fusd/include ln -sf ../../../../fusd/kfusd/Makefile $(OBJDIR)/$(BUILDDIR)/fusd/kfusd26/Makefile ln -sf ../../../../fusd/kfusd/kfusd.c $(OBJDIR)/$(BUILDDIR)/fusd/kfusd26/kfusd.c @make -C $(OBJDIR)/$(BUILDDIR)/fusd/kfusd26/ KDIR=$(KERNEL_ROOT) cp $(OBJDIR)/$(BUILDDIR)/fusd/kfusd26/kfusd.ko $(OBJDIR)/fusd/kfusd.ko endif } # Programs that should be run as part of the regression test series test { "opentest /dev/fusd-opentest", ioctl-test, zombietest, zombietest2, # "openrace 20", # "openrace2 20" #"statetest 30", wrong exit semantics #"torturetest 20", wrong exit semantics }