Changeset 407 for trunk/Makefile.tsar


Ignore:
Timestamp:
Nov 7, 2017, 3:08:12 PM (6 years ago)
Author:
alain
Message:

First implementation of fork/exec.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Makefile.tsar

    r380 r407  
    1818
    1919LIBGCC = -L$(shell $(CC) -print-libgcc-file-name | sed 's/libgcc.a//')
     20
    2021# Default values for hardware parameters.
    2122# These parameters should be defined in the 'params.mk' file.
     
    141142
    142143SYS_OBJS_0  = build/kernel/syscalls/sys_thread_exit.o     \
    143               build/kernel/syscalls/sys_mmap.o            \
     144              build/kernel/syscalls/sys_thread_yield.o    \
    144145              build/kernel/syscalls/sys_thread_create.o   \
    145146              build/kernel/syscalls/sys_thread_join.o     \
    146147              build/kernel/syscalls/sys_thread_detach.o   \
    147               build/kernel/syscalls/sys_thread_yield.o    \
    148148              build/kernel/syscalls/sys_sem.o             \
    149149              build/kernel/syscalls/sys_condvar.o         \
     
    151151              build/kernel/syscalls/sys_mutex.o
    152152
    153 SYS_OBJS_1  = build/kernel/syscalls/sys_thread_sleep.o    \
    154               build/kernel/syscalls/sys_thread_wakeup.o   \
     153SYS_OBJS_1  = build/kernel/syscalls/sys_munmap.o          \
    155154              build/kernel/syscalls/sys_open.o            \
    156               build/kernel/syscalls/sys_creat.o           \
     155              build/kernel/syscalls/sys_mmap.o            \
    157156              build/kernel/syscalls/sys_read.o            \
    158157              build/kernel/syscalls/sys_write.o           \
     
    169168              build/kernel/syscalls/sys_closedir.o        \
    170169              build/kernel/syscalls/sys_getcwd.o          \
    171               build/kernel/syscalls/sys_clock.o           \
    172170              build/kernel/syscalls/sys_alarm.o           \
    173171              build/kernel/syscalls/sys_rmdir.o
     
    184182              build/kernel/syscalls/sys_trace.o
    185183
    186 VFS_OBJS    = build/kernel/vfs/vfs.o              \
    187               build/kernel/vfs/fatfs.o            \
    188               build/kernel/vfs/devfs.o            \
    189               build/kernel/vfs/ramfs.o
     184SYS_OBJS_4  = build/kernel/syscalls/sys_get_config.o      \
     185              build/kernel/syscalls/sys_get_core.o        \
     186              build/kernel/syscalls/sys_get_cycle.o       \
     187              build/kernel/syscalls/sys_get_sched.o       \
     188              build/kernel/syscalls/sys_panic.o           \
     189              build/kernel/syscalls/sys_thread_sleep.o    \
     190              build/kernel/syscalls/sys_thread_wakeup.o
     191
     192VFS_OBJS    = build/kernel/fs/vfs.o              \
     193              build/kernel/fs/fatfs.o            \
     194              build/kernel/fs/devfs.o            \
     195              build/kernel/fs/ramfs.o
    190196
    191197# List of directories to be searched for included files
    192198# when compiling for kernel.elf generation
    193 KERNEL_INCLUDE = -Ikernel                \
    194                  -Ikernel/kern           \
    195                  -Ikernel/devices        \
    196                  -Ikernel/syscalls       \
     199KERNEL_INCLUDE = -Ikernel                  \
     200                 -Ikernel/kern             \
     201                 -Ikernel/devices          \
     202                 -Ikernel/syscalls         \
    197203                 -Ihal/tsar_mips32/drivers \
    198                  -Ikernel/syscalls       \
    199                  -Ikernel/libk           \
    200                  -Ikernel/mm             \
    201                  -Ikernel/vfs            \
    202                  -Ikernel/fatfs          \
    203                  -Ikernel/sysfs          \
    204                  -Ikernel/ramfs          \
    205                  -Ikernel/devfs          \
    206                  -Itools/arch_info       \
    207                  -Ihal/generic           \
    208                  -Ihal/tsar_mips32/core  \
     204                 -Ikernel/syscalls         \
     205                 -Ikernel/libk             \
     206                 -Ikernel/mm               \
     207                 -Ikernel/fs               \
     208                 -Itools/arch_info         \
     209                 -Ihal/generic             \
     210                 -Ihal/tsar_mips32/core    \
    209211                 -I.
    210212
     
    222224MTOOLS_SKIP_CHECK := 1
    223225
    224 # Rule to generate compile boot.elf, kernel.elf, init.elf and update virtual disk.
     226# Rule to generate boot.elf, kernel.elf, ksh.elf, sort.elf and update virtual disk.
    225227compile: dirs                     \
    226228         build_disk               \
     
    228230                 build/boot/boot.elf      \
    229231         build/kernel/kernel.elf  \
    230          build/user/init/init.elf \
     232         build/user/ksh/ksh.elf   \
     233         build/user/sort/sort.elf \
    231234         list
    232235
     
    241244        @mkdir -p build/kernel/libk
    242245        @mkdir -p build/kernel/drivers
    243         @mkdir -p build/kernel/vfs
     246        @mkdir -p build/kernel/fs
    244247        @mkdir -p build/kernel/syscalls
    245248        @mkdir -p build/user
    246         @mkdir -p build/user/init
    247249        @mkdir -p build/user/ksh
     250        @mkdir -p build/user/sort
    248251        @mkdir -p hdd
    249252
     
    264267        rm -f hard_config.h arch_info.xml arch_info.bin
    265268        rm -rf build
    266         cd user/init   &&  $(MAKE) clean  &&  cd ../..
     269        cd user/ksh  &&  $(MAKE) clean  &&  cd ../..
     270        cd user/sort  &&  $(MAKE) clean  &&  cd ../..
    267271
    268272####################################################   
    269273# Rule for building a new virtual disk from scratch.
    270 # It creates the bin, bin/kernel, bin/init, and home directories.
     274# It creates the bin, bin/kernel, bin/user, and home directories.
    271275# This requires the generic Linux/MacOS 'create_dmg' script, that should be
    272276# placed in the same directory as this Makefile.
     
    278282        mmd                     -o -i $(DISK_IMAGE) ::/bin         || true
    279283        mmd                     -o -i $(DISK_IMAGE) ::/bin/kernel  || true
    280         mmd                     -o -i $(DISK_IMAGE) ::/bin/init    || true
     284        mmd                     -o -i $(DISK_IMAGE) ::/bin/user    || true
    281285        mmd                     -o -i $(DISK_IMAGE) ::/home        || true
    282286        mdir             -/ -b -i $(DISK_IMAGE) ::/
     
    421425
    422426build/kernel/hal/hal_switch.o:  hal/tsar_mips32/core/hal_switch.S \
    423                                 hal/tsar_mips32/core/hal_switch.h
     427                                hal/generic/hal_switch.h
    424428        $(CC) $(KERNEL_INCLUDE) $(CFLAGS) -c -o $@ $<
    425429        $(DU) -D $@ > $@.txt
     
    458462
    459463#######################################
    460 # Rules to generate kernel/vfs objects
    461 build/kernel/vfs/%.o:           kernel/vfs/%.c              \
    462                                 kernel/vfs/%.h              \
    463                                 kernel_config.h             \
    464                                 hal/tsar_mips32/core/hal_types.h
    465         $(CC) $(KERNEL_INCLUDE) $(CFLAGS) -c -o $@ $<
    466 
    467 ###########################################################
     464# Rules to generate kernel/fs objects
     465build/kernel/fs/%.o:            kernel/fs/%.c               \
     466                                kernel/fs/%.h               \
     467                                kernel_config.h             \
     468                                hal/tsar_mips32/core/hal_types.h
     469        $(CC) $(KERNEL_INCLUDE) $(CFLAGS) -c -o $@ $<
     470
     471#############################################################
    468472# Rule to generate kernel.elf and place it on virtual disk
     473# TODO the syscalls grouped in SYS_OBJS_2 must be introduced
    469474build/kernel/kernel.elf:            $(KERN_OBJS)                \
    470475                                $(HAL_OBJS)                 \
     
    478483                                $(SYS_OBJS_2)               \
    479484                                $(SYS_OBJS_3)               \
     485                                $(SYS_OBJS_4)               \
    480486                                                                hal/tsar_mips32/kernel.ld
    481487        $(LD) -o $@ -T hal/tsar_mips32/kernel.ld $(LIBGCC)      \
     
    483489          $(LIBK_OBJS) $(DRIVERS_OBJS) $(VFS_OBJS)          \
    484490          $(SYS_OBJS_0) $(SYS_OBJS_1) $(SYS_OBJS_2)         \
    485           $(SYS_OBJS_3) -lgcc
     491          $(SYS_OBJS_3) $(SYS_OBJS_4) -lgcc
    486492
    487493        $(DU) -D $@ > $@.txt
    488494        mcopy -o -i $(DISK_IMAGE) build/kernel/kernel.elf ::/bin/kernel
    489495
    490 ############################################################
    491 # Rule to generate the init.elf and place it on virtual disk
    492 build/user/init/init.elf : user/init/init.c
    493         $(MAKE) -C user/init
    494         mcopy -o -i $(DISK_IMAGE) user/init/init.elf ::/bin/init
     496###############################################################
     497# Rules to generate various user .elf and copy on virtual disk
     498
     499build/user/ksh/ksh.elf : user/ksh/ksh.c
     500        $(MAKE) -C user/ksh
     501        mcopy -o -i $(DISK_IMAGE) user/ksh/ksh.elf ::/bin/user
    495502 
    496 
     503build/user/sort/sort.elf : user/sort/sort.c
     504        $(MAKE) -C user/sort
     505        mcopy -o -i $(DISK_IMAGE) user/sort/sort.elf ::/bin/user
     506
Note: See TracChangeset for help on using the changeset viewer.