| 1 |
123 |
Agner |
# makefile for building ForwardCom function libraries
|
| 2 |
|
|
# last modified: 2021-08-04
|
| 3 |
|
|
# version: 1.11
|
| 4 |
|
|
# license: GPL
|
| 5 |
|
|
# author: Agner Fog
|
| 6 |
|
|
|
| 7 |
|
|
# This will make the following libraries for ForwardCom:
|
| 8 |
|
|
# ------------------------------------------------------
|
| 9 |
|
|
# libc.li: Standard C functions
|
| 10 |
|
|
# math.li: Standard C math functions
|
| 11 |
|
|
# libc_light.li: Standard and non-standard functions for small CPUs with limited capabilities,
|
| 12 |
|
|
# does not use mul, div, push, pop, sys_call. Uses 64-bit registers only if supported.
|
| 13 |
|
|
|
| 14 |
|
|
# assembler name:
|
| 15 |
|
|
comp=forw.exe
|
| 16 |
|
|
|
| 17 |
|
|
# object files for libc.li:
|
| 18 |
|
|
objfilesc = startup.ob abort.ob exit.ob time.ob raise_event.ob \
|
| 19 |
|
|
fopen.ob fclose.ob feof.ob ferror.ob fflush.ob fread.ob fwrite.ob fseek.ob ftell.ob remove.ob \
|
| 20 |
|
|
printf.ob fprintf.ob \
|
| 21 |
|
|
getchar.ob putchar.ob puts.ob fgetc.ob fgets.ob gets_s.ob \
|
| 22 |
|
|
atoi.ob printint32.ob printint64.ob divide_int.ob \
|
| 23 |
|
|
memcpy.ob memset.ob strlen.ob strcpy.ob strcat.ob \
|
| 24 |
|
|
# Note: string functions need to be fixed to avoid unaligned memory access
|
| 25 |
|
|
# snprintf.ob fscanf.ob scanf.ob sscanf.ob
|
| 26 |
|
|
|
| 27 |
|
|
# object files for math.li:
|
| 28 |
|
|
objfilesm = sincos.ob sincosf.ob integrate.ob
|
| 29 |
|
|
|
| 30 |
|
|
# object files for libc_light.li:
|
| 31 |
|
|
objfileslc = startup_light.ob atoi_light.ob \
|
| 32 |
|
|
putchar_light.ob puts_light.ob print_string_light.ob print_characters_light.ob \
|
| 33 |
|
|
print_hexadecimal_light.ob print_integer_light.ob printf_light.ob \
|
| 34 |
|
|
getch_light.ob gets_light.ob clear_input_light.ob \
|
| 35 |
|
|
multiply_int_light.ob divide_int_light.ob
|
| 36 |
|
|
|
| 37 |
|
|
# make libc.li:
|
| 38 |
|
|
libc.li : $(objfilesc)
|
| 39 |
|
|
$(comp) -lib $@ $?
|
| 40 |
|
|
|
| 41 |
|
|
# make math.li:
|
| 42 |
|
|
math.li : $(objfilesm)
|
| 43 |
|
|
$(comp) -lib $@ $?
|
| 44 |
|
|
|
| 45 |
|
|
# make libc_light.li:
|
| 46 |
|
|
libc_light.li : $(objfileslc)
|
| 47 |
|
|
$(comp) -lib $@ $?
|
| 48 |
|
|
|
| 49 |
|
|
|
| 50 |
|
|
# rule for making object file:
|
| 51 |
|
|
%.ob: %.as
|
| 52 |
|
|
$(comp) -ass -debug=3 -O2 $< $@
|