# Makefile.default, Copyright (c) by C. Jeker, # Swiss Federal Institute of Technology, # Computer Engineering and Networks Laboratory. # # TOPSY -- A Teachable Operating System. # Implementation of a tiny and simple # micro kernel for teaching purposes. # # For further information, please visit http://www.tik.ee.ethz.ch/~topsy # # This software is provided under the terms of the GNU General Public Licence. # A full copy of the GNU GPL is provided in the file COPYING found in the # development root of Topsy. # # # File: $Source: /usr/drwho/vault/cvs/topsy/Topsy/Makefiles/Makefile.default,v $ # Author(s): # Affiliation: ETH Zuerich, TIK # Version: $Revision: 1.7 $ # Creation Date: # Last Date of Change: $Date: 2000/04/03 17:45:29 $ by: $Author: gfa $ # # # $Log: Makefile.default,v $ # Revision 1.7 2000/04/03 17:45:29 gfa # *** empty log message *** # # Revision 1.6 2000/01/03 14:40:08 gfa # *** empty log message *** # # Revision 1.5 1999/12/14 13:28:55 ruf # GNU GPL fix: missing #ifdef's inserted, Platform.mips.solaris: LCC=gcc set # # Revision 1.4 1999/12/13 21:48:29 ruf # GNU General Public Licence Update # # Revision 1.3 1999/10/27 11:04:50 jeker # fixes R4k R3k port # # Revision 1.2 1999/09/17 07:55:02 gfa # new automatic version string # # Revision 1.1 1999/06/06 20:54:51 jeker # putting everything together for Topsy 2.0 # # # ############################################################################### # Platform independent stuff # # # several defines to be reused later # the dir structure stuff OBJ=$(ARCH).obj DIRS=Topsy Memory IO IO/Drivers IO/Drivers/FPGA_Prog Threads Startup User ALLDIRS=$(DIRS) $(addsuffix /${ARCH}, $(DIRS)) # here are the Kernel source files by "module" ST=Startup STFILES=$(ST)/Startup.c $(addprefix $(ST)/$(ARCH)/, $(STFILESARCH)) TO=Topsy TOFILES=$(TO)/HashList.c $(TO)/List.c $(TO)/Support.c $(TO)/Syscall.c \ $(TO)/Error.c $(TO)/Lock.c $(addprefix $(TO)/$(ARCH)/, $(TOFILESARCH)) MM=Memory MMFILES=$(MM)/MMInit.c $(MM)/MMHeapMemory.c $(MM)/MMMain.c \ $(MM)/MMVirtualMemory.c $(addprefix $(MM)/$(ARCH)/, $(MMFILESARCH)) TM=Threads TMFILES=$(TM)/TMInit.c $(TM)/TMIPC.c $(TM)/TMMain.c \ $(TM)/TMScheduler.c $(TM)/TMThread.c $(TM)/TMTime.c \ $(addprefix $(TM)/$(ARCH)/, $(TMFILESARCH)) IO=IO IOFILES=$(IO)/IOMain.c $(IO)/IODevice.c $(IO)/IOConsole.c \ $(addprefix $(IO)/Drivers/, $(IOFILESDRIVERS)) \ $(addprefix $(IO)/$(ARCH)/, $(IOFILESARCH)) # here we define lists of all source and all object filenames (with path) KERNELFILES=$(STFILES) $(TOFILES) $(MMFILES) $(TMFILES) $(IOFILES) KERNELOBJS=$(KERNELFILES:.c=.o) $(KERNELFILES:.S=.o) REALKERNELOBJS=$(addsuffix .o, $(addprefix $(OBJ)/, $(basename $(KERNELFILES)))) # some default make rules # here are the main rules for optimized C, non-optimized C, Assembler, and Java code $(OBJ)/%.o: %.c $(OBJ) $(CC) $(CFLAGS) $(INC) $(DEFS) $(OPTIMIZE) $(SEGMAPDEFINE) -c $< -o $@ $(OBJ)/%.o: %.S $(OBJ) $(CC) $(SFLAGS) $(INC) $(DEFS) $(OPTIMIZE) -c $< -o $@ # this rule makes a tree of directories under $(ARCH).obj $(OBJ): mkdir $(OBJ) $(addprefix $(OBJ)/, $(ALLDIRS)) version: @echo "const char topsyVersionString[]=\"Topsy 2.0 (c) 1996-2000, ETH \ Zurich\n[Arch:$(ARCH), \ `whoami`@`hostname`, `date`]\n\n\";" > Topsy/Version.h