# $Id$ UTILSRC := ./utilsrc SRC := ./src OBJ := ./obj INC := ./include BIN := ./bin NAME_PREFIX := CHARSET := utf-8 NAMES := true false whoami echo sleep head tail env basename dirname pwd yes cat wc rm chmod uuencode dd clear rev printf ifneq ($(WINDOWS),YES) NAMES += tty uname ftpd hostname CLOGIN_LIBS := -lcrypt FTPD_LIBS := -lcrypt FTPD_OBJS := $(OBJ)/u_nv_pwd.o BIN_SUFFIX := BINARIES := $(addprefix $(BIN)/$(NAME_PREFIX),$(NAMES)) ifneq ($(shell uname -s),NetBSD) NAMES += procman inetconf # Why compile inetconf? NetBSD already has ifconfig which is not retarded. endif else BIN_SUFFIX := .exe endif BINARIES := $(addsuffix $(BIN_SUFFIX),$(addprefix $(BIN)/$(NAME_PREFIX),$(NAMES))) CC := cc CFLAGS := $(CFLAGS) -g -std=c99 -ansi -I$(INC) -D_BSD_SOURCE -DBINARIES="\"$(NAMES)\"" -fexec-charset=$(CHARSET) -DNVBIN LDFLAGS := ifneq ($(OUTLANG),) CFLAGS := $(CFLAGS) -DLANG_$(OUTLANG) endif ifeq ($(STATIC),YES) CFLAGS := -static $(CFLAGS) LDFLAGS := -static $(LDFLAGS) endif .PHONY: all allbin clean all: $(BIN)/$(NAME_PREFIX)nashville$(BIN_SUFFIX) allbin: $(BINARIES) clean: rm -rf $(OBJ) $(BIN) cgetty clogin cinit cmount cdev .SECONDARY: $(OBJ)/u_strdup.o $(OBJ)/u_strcat.o $(BIN)/$(NAME_PREFIX)nashville$(BIN_SUFFIX): $(OBJ)/main.o $(addsuffix .o,$(addprefix $(OBJ)/s_,$(NAMES))) $(OBJ)/u_strdup.o $(OBJ)/u_strcat.o $(FTPD_OBJS) mkdir -p $(BIN) $(CC) $(LDFLAGS) -o $@ $^ $(CLOGIN_LIBS) $(FTPD_LIBS) $(OBJ)/s_head.o: $(SRC)/headtail.c $(INC)/nashville.h mkdir -p $(OBJ) $(CC) -DHEAD $(CFLAGS) -DNASHVILLE -c -o $@ $< $(OBJ)/s_tail.o: $(SRC)/headtail.c $(INC)/nashville.h mkdir -p $(OBJ) $(CC) -DTAIL $(CFLAGS) -DNASHVILLE -c -o $@ $< $(OBJ)/s_cgetty.o: $(INC)/nashville.h mkdir -p $(OBJ) if [ ! -e "cgetty" ]; then svn co http://sw.nishi.boats/sw/~nishi/cgetty/trunk cgetty ; fi $(CC) $(CFLAGS) -DNASHVILLE -Icgetty/include -c -o $@ cgetty/src/cgetty.c $(OBJ)/s_clogin.o: $(INC)/nashville.h mkdir -p $(OBJ) if [ ! -e "clogin" ]; then svn co http://sw.nishi.boats/sw/~nishi/clogin/trunk clogin ; fi $(CC) $(CFLAGS) -DNASHVILLE -Iclogin/include -c -o $@ clogin/src/clogin.c $(OBJ)/s_cinit.o: $(INC)/nashville.h mkdir -p $(OBJ) if [ ! -e "cinit" ]; then svn co http://sw.nishi.boats/sw/~nishi/cinit/trunk cinit ; fi $(CC) $(CFLAGS) -DNASHVILLE -Icinit/include -c -o $@ cinit/src/cinit.c $(OBJ)/s_cshutdown.o: $(INC)/nashville.h $(OBJ)/s_cinit.o mkdir -p $(OBJ) $(CC) $(CFLAGS) -DNASHVILLE -Icinit/include -c -o $@ cinit/src/cshutdown.c $(OBJ)/s_cmount.o: $(INC)/nashville.h mkdir -p $(OBJ) if [ ! -e "cmount" ]; then svn co http://sw.nishi.boats/sw/~nishi/cmount/trunk cmount ; fi $(CC) $(CFLAGS) -DNASHVILLE -Icmount/include -c -o $@ cmount/src/cmount.c $(OBJ)/s_cdev.o: $(INC)/nashville.h mkdir -p $(OBJ) if [ ! -e "cdev" ]; then svn co http://sw.nishi.boats/sw/~nishi/cdev/trunk cdev ; fi $(CC) $(CFLAGS) -DNASHVILLE -Icdev/include -c -o $@ cdev/src/cdev.c $(OBJ)/s_ftpd.o: $(SRC)/ftpd.c $(INC)/nashville.h mkdir -p $(OBJ) $(CC) $(CFLAGS) -DNASHVILLE -c -o $@ $< $(OBJ)/s_%.o: $(SRC)/%.c $(INC)/nashville.h mkdir -p $(OBJ) $(CC) $(CFLAGS) -DNASHVILLE -c -o $@ $< $(BIN)/$(NAME_PREFIX)clogin$(BIN_SUFFIX): $(OBJ)/clogin.o $(OBJ)/u_strdup.o $(OBJ)/u_strcat.o mkdir -p $(BIN) $(CC) $(LDFLAGS) -o $@ $^ $(CLOGIN_LIBS) $(BIN)/$(NAME_PREFIX)cgetty$(BIN_SUFFIX): $(OBJ)/cgetty.o $(OBJ)/u_strdup.o $(OBJ)/u_strcat.o mkdir -p $(BIN) $(CC) $(LDFLAGS) -o $@ $^ $(BIN)/$(NAME_PREFIX)cinit$(BIN_SUFFIX): $(OBJ)/cinit.o $(OBJ)/u_strdup.o $(OBJ)/u_strcat.o mkdir -p $(BIN) $(CC) $(LDFLAGS) -o $@ $^ $(BIN)/$(NAME_PREFIX)cshutdown$(BIN_SUFFIX): $(OBJ)/cshutdown.o $(OBJ)/u_strdup.o $(OBJ)/u_strcat.o mkdir -p $(BIN) $(CC) $(LDFLAGS) -o $@ $^ $(BIN)/$(NAME_PREFIX)cmount$(BIN_SUFFIX): $(OBJ)/cmount.o $(OBJ)/u_strdup.o $(OBJ)/u_strcat.o mkdir -p $(BIN) $(CC) $(LDFLAGS) -o $@ $^ $(BIN)/$(NAME_PREFIX)cdev$(BIN_SUFFIX): $(OBJ)/cdev.o $(OBJ)/u_strdup.o $(OBJ)/u_strcat.o mkdir -p $(BIN) $(CC) $(LDFLAGS) -o $@ $^ $(BIN)/$(NAME_PREFIX)ftpd$(BIN_SUFFIX): $(OBJ)/ftpd.o $(OBJ)/u_strdup.o $(OBJ)/u_strcat.o $(OBJ)/u_nv_pwd.o mkdir -p $(BIN) $(CC) $(LDFLAGS) -o $@ $^ $(FTPD_LIBS) $(BIN)/$(NAME_PREFIX)%$(BIN_SUFFIX): $(OBJ)/%.o $(OBJ)/u_strdup.o $(OBJ)/u_strcat.o mkdir -p $(BIN) $(CC) $(LDFLAGS) -o $@ $^ $(OBJ)/head.o: $(SRC)/headtail.c $(INC)/nashville.h mkdir -p $(OBJ) $(CC) -DHEAD $(CFLAGS) -c -o $@ $< $(OBJ)/tail.o: $(SRC)/headtail.c $(INC)/nashville.h mkdir -p $(OBJ) $(CC) -DTAIL $(CFLAGS) -c -o $@ $< $(OBJ)/u_%.o: $(UTILSRC)/%.c $(INC)/nashville.h mkdir -p $(OBJ) $(CC) $(CFLAGS) -c -o $@ $< $(OBJ)/cgetty.o: $(INC)/nashville.h mkdir -p $(OBJ) if [ ! -e "cgetty" ]; then svn co http://sw.nishi.boats/sw/~nishi/cgetty/trunk cgetty ; fi $(CC) $(CFLAGS) -Icgetty/include -c -o $@ cgetty/src/cgetty.c $(OBJ)/clogin.o: $(INC)/nashville.h mkdir -p $(OBJ) if [ ! -e "clogin" ]; then svn co http://sw.nishi.boats/sw/~nishi/clogin/trunk clogin ; fi $(CC) $(CFLAGS) -Iclogin/include -c -o $@ clogin/src/clogin.c $(OBJ)/cmount.o: $(INC)/nashville.h mkdir -p $(OBJ) if [ ! -e "cmount" ]; then svn co http://sw.nishi.boats/sw/~nishi/cmount/trunk cmount ; fi $(CC) $(CFLAGS) -Icmount/include -c -o $@ cmount/src/cmount.c $(OBJ)/cdev.o: $(INC)/nashville.h mkdir -p $(OBJ) if [ ! -e "cdev" ]; then svn co http://sw.nishi.boats/sw/~nishi/cdev/trunk cdev ; fi $(CC) $(CFLAGS) -Icdev/include -c -o $@ cdev/src/cdev.c $(OBJ)/cinit.o: $(INC)/nashville.h mkdir -p $(OBJ) if [ ! -e "cinit" ]; then svn co http://sw.nishi.boats/sw/~nishi/cinit/trunk cinit ; fi $(CC) $(CFLAGS) -Icinit/include -c -o $@ cinit/src/cinit.c $(OBJ)/cshutdown.o: $(INC)/nashville.h $(OBJ)/cinit.o mkdir -p $(OBJ) $(CC) $(CFLAGS) -Icinit/include -c -o $@ cinit/src/cshutdown.c $(OBJ)/ftpd.o: $(SRC)/ftpd.c $(INC)/nashville.h mkdir -p $(OBJ) $(CC) $(CFLAGS) -c -o $@ $< $(FTPD_LIBS) $(OBJ)/%.o: $(SRC)/%.c $(INC)/nashville.h mkdir -p $(OBJ) $(CC) $(CFLAGS) -c -o $@ $<