mirror of
https://github.com/adtools/clib2.git
synced 2025-12-08 14:59:05 +00:00
- Cleaned up the OS4 build makefile, losing redundant libraries, adding more startup object code and ultimatively making the whole rebuild logic work again: if code changes and dependencies are set up correctly, it will now get rebuilt. Previously, such changes went unnoticed and you had to rebuild the entire library from scratch. - Added stubs for CreatePort(), DeletePort(), CreateTask(), DeleteTask() and NewList() which have equivalents in exec.library V50 but for which it might be useful if ported code didn't have to reference these explicitly. - mktemp() was broken in libunix.a with Unix path semantics enabled. This was because the name template was translated and translated back again, overwriting the translation buffer. This, funny enough, broke Samba's printing feature. Fixed by translating the name only before each test for "uniqueness" is made. The new code also handles empty "" templates gracefully, which was a problem with both the "standard" and the Unix path semantics flavour. Why is it that I find bugs like this always after having just released another library update? git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14769 87f5fb63-7c3d-0410-a384-fd976d0f7a62
939 lines
22 KiB
Plaintext
939 lines
22 KiB
Plaintext
#
|
|
# $Id: GNUmakefile.os4,v 1.13 2004-11-13 12:55:39 obarthel Exp $
|
|
#
|
|
# :ts=8
|
|
#
|
|
# -*- mode: makefile; -*-
|
|
|
|
##############################################################################
|
|
|
|
# You may have to tweak this for the native OS4 compiler
|
|
SDK_INCLUDE = $(V)/include
|
|
NET_INCLUDE = netinclude
|
|
|
|
# These are for the cross compiler
|
|
CC = ppc-amigaos-gcc
|
|
AR = ppc-amigaos-ar -q
|
|
RANLIB = ppc-amigaos-ranlib
|
|
COPY = cp
|
|
DELETE = rm -r
|
|
MAKEDIR = mkdir
|
|
|
|
# The following are for the native OS4 compiler
|
|
# CC = gcc
|
|
# AR = ar -q
|
|
# RANLIB = ranlib
|
|
# COPY = copy
|
|
# DELETE = delete all quiet
|
|
# MAKEDIR = makedir
|
|
|
|
MAKE = make -f GNUmakefile.os4
|
|
|
|
##############################################################################
|
|
|
|
ifeq (,$(TYPE))
|
|
LIBC_OBJS = libc_objs
|
|
LIBUNIX_OBJS = libunix_objs
|
|
LIBM_OBJS = libm_objs
|
|
LIBNET_OBJS = libnet_objs
|
|
LIBDEBUG_OBJS = libdebug_objs
|
|
LIBAMIGA_OBJS = libamiga_objs
|
|
else
|
|
LIBC_OBJS = $(TYPE)/libc_objs
|
|
LIBUNIX_OBJS = $(TYPE)/libunix_objs
|
|
LIBM_OBJS = $(TYPE)/libm_objs
|
|
LIBNET_OBJS = $(TYPE)/libnet_objs
|
|
LIBDEBUG_OBJS = $(TYPE)/libdebug_objs
|
|
LIBAMIGA_OBJS = $(TYPE)/libamiga_objs
|
|
endif
|
|
|
|
##############################################################################
|
|
|
|
# General build rules for all object files and the individual libraries
|
|
%.o : %.c
|
|
@echo "Compiling $<"
|
|
@$(CC) -c $(CFLAGS) $<
|
|
|
|
$(LIBC_OBJS)/%.o : %.c
|
|
@echo "Compiling $< [$(TYPE):c]"
|
|
@$(CC) -o $(LIBC_OBJS)/$*.o -c $(CFLAGS) $<
|
|
|
|
$(LIBUNIX_OBJS)/%.o : %.c
|
|
@echo "Compiling $< [$(TYPE):unix]"
|
|
@$(CC) -o $(LIBUNIX_OBJS)/$*.o -c $(CFLAGS) -DUNIX_PATH_SEMANTICS $<
|
|
|
|
$(LIBM_OBJS)/%.o : %.c
|
|
@echo "Compiling $< [$(TYPE):m]"
|
|
@$(CC) -o $(LIBM_OBJS)/$*.o -c $(CFLAGS) $(FLOAT_TYPE) $<
|
|
|
|
$(LIBNET_OBJS)/%.o : %.c
|
|
@echo "Compiling $< [$(TYPE):net]"
|
|
@$(CC) -o $(LIBNET_OBJS)/$*.o -c $(CFLAGS) -I$(NET_INCLUDE) -DSOCKET_SUPPORT -DUSERGROUP_SUPPORT $<
|
|
|
|
$(LIBDEBUG_OBJS)/%.o : %.c
|
|
@echo "Compiling $< [$(TYPE):debug]"
|
|
@$(CC) -o $(LIBDEBUG_OBJS)/$*.o -c $(CFLAGS) $<
|
|
|
|
$(LIBAMIGA_OBJS)/%.o : %.c
|
|
@echo "Compiling $< [$(TYPE):amiga]"
|
|
@$(CC) -o $(LIBAMIGA_OBJS)/$*.o -c $(CFLAGS) $<
|
|
|
|
##############################################################################
|
|
|
|
# Build options for the individual libraries
|
|
ifeq (small_data,$(TYPE))
|
|
CODE_TYPE := -msdata=sysv -DSMALL_DATA
|
|
FLOAT_TYPE := -DPPC_FLOATING_POINT_SUPPORT
|
|
endif
|
|
|
|
ifeq (large_data,$(TYPE))
|
|
CODE_TYPE := -msdata=data
|
|
FLOAT_TYPE := -DPPC_FLOATING_POINT_SUPPORT
|
|
endif
|
|
|
|
ifeq (large_data_softfloat,$(TYPE))
|
|
CODE_TYPE := -msdata=data -msoft-float
|
|
FLOAT_TYPE :=
|
|
endif
|
|
|
|
##############################################################################
|
|
|
|
WARNINGS = \
|
|
-Wall -W -Wshadow -Wpointer-arith -Wsign-compare -Wmissing-prototypes \
|
|
-Wundef -Wbad-function-cast -Wmissing-declarations -Wconversion
|
|
|
|
INCLUDES = -Iinclude -I. -I$(SDK_INCLUDE)
|
|
OPTIONS = -DNDEBUG -DUSE_64_BIT_INTS -fno-builtin -D__USE_INLINE__ -Wa,-mregnames
|
|
OPTIMIZE = -O -fomit-frame-pointer -funroll-loops
|
|
#DEBUG = -g
|
|
|
|
CFLAGS = $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(CODE_TYPE) $(INCLUDES)
|
|
|
|
##############################################################################
|
|
|
|
# All objects files which make up libc.a
|
|
C_LIB = \
|
|
c.lib_rev.o \
|
|
ctype_isalnum.o \
|
|
ctype_isalpha.o \
|
|
ctype_isascii.o \
|
|
ctype_iscntrl.o \
|
|
ctype_isdigit.o \
|
|
ctype_isgraph.o \
|
|
ctype_islower.o \
|
|
ctype_isprint.o \
|
|
ctype_ispunct.o \
|
|
ctype_isspace.o \
|
|
ctype_isupper.o \
|
|
ctype_isxdigit.o \
|
|
ctype_tolower.o \
|
|
ctype_toupper.o \
|
|
ctype_table.o \
|
|
dirent_closedir.o \
|
|
dirent_data.o \
|
|
dirent_rewinddir.o \
|
|
dirent_opendir.o \
|
|
dirent_readdir.o \
|
|
errno_data.o \
|
|
fcntl_close.o \
|
|
fcntl_creat.o \
|
|
fcntl_fcntl.o \
|
|
fcntl_lseek.o \
|
|
fcntl_open.o \
|
|
fcntl_read.o \
|
|
fcntl_write.o \
|
|
fcntl_get_default_file.o \
|
|
libgen_basename.o \
|
|
libgen_dirname.o \
|
|
locale_init_exit.o \
|
|
locale_localeconv.o \
|
|
locale_setlocale.o \
|
|
mount_convertinfo.o \
|
|
mount_fstatfs.o \
|
|
mount_statfs.o \
|
|
signal_checkabort.o \
|
|
signal_data.o \
|
|
signal_kill.o \
|
|
signal_raise.o \
|
|
signal_sigaddset.o \
|
|
signal_sigblock.o \
|
|
signal_sigemptyset.o \
|
|
signal_sigmask.o \
|
|
signal_signal.o \
|
|
signal_sigprocmask.o \
|
|
signal_sigsetmask.o \
|
|
stat_chmod.o \
|
|
stat_convertfileinfo.o \
|
|
stat_data.o \
|
|
stat_fchmod.o \
|
|
stat_fstat.o \
|
|
stat_lstat.o \
|
|
stat_mkdir.o \
|
|
stat_rmdir.o \
|
|
stat_stat.o \
|
|
stat_umask.o \
|
|
stdio_asprintf.o \
|
|
stdio_clearerr.o \
|
|
stdio_data.o \
|
|
stdio_dropiobreadbuffer.o \
|
|
stdio_duplicate_fd.o \
|
|
stdio_fclose.o \
|
|
stdio_fdhookentry.o \
|
|
stdio_feof.o \
|
|
stdio_ferror.o \
|
|
stdio_fflush.o \
|
|
stdio_flush.o \
|
|
stdio_fgetc.o \
|
|
stdio_fgetpos.o \
|
|
stdio_fgets.o \
|
|
stdio_filliobreadbuffer.o \
|
|
stdio_findvacantfdentry.o \
|
|
stdio_findvacantiobentry.o \
|
|
stdio_flushiobwritebuffer.o \
|
|
stdio_fopen.o \
|
|
stdio_fprintf.o \
|
|
stdio_fputc.o \
|
|
stdio_fputs.o \
|
|
stdio_fread.o \
|
|
stdio_freopen.o \
|
|
stdio_fscanf.o \
|
|
stdio_fseek.o \
|
|
stdio_fsetpos.o \
|
|
stdio_ftell.o \
|
|
stdio_fwrite.o \
|
|
stdio_getc.o \
|
|
stdio_getchar.o \
|
|
stdio_get_file_descriptor.o \
|
|
stdio_gets.o \
|
|
stdio_growfdtable.o \
|
|
stdio_growiobtable.o \
|
|
stdio_initializefd.o \
|
|
stdio_initializeiob.o \
|
|
stdio_init_exit.o \
|
|
stdio_iobhookentry.o \
|
|
stdio_locksemaphorename.o \
|
|
stdio_nostdio.o \
|
|
stdio_openiob.o \
|
|
stdio_perror.o \
|
|
stdio_popen.o \
|
|
stdio_printf.o \
|
|
stdio_putc.o \
|
|
stdio_putchar.o \
|
|
stdio_puts.o \
|
|
stdio_remove.o \
|
|
stdio_rename.o \
|
|
stdio_rewind.o \
|
|
stdio_scanf.o \
|
|
stdio_setbuf.o \
|
|
stdio_setvbuf.o \
|
|
stdio_snprintf.o \
|
|
stdio_sprintf.o \
|
|
stdio_sscanf.o \
|
|
stdio_sscanf_hook_entry.o \
|
|
stdio_tmpfile.o \
|
|
stdio_tmpnam.o \
|
|
stdio_translateioerror.o \
|
|
stdio_ungetc.o \
|
|
stdio_vasprintf.o \
|
|
stdio_vasprintf_hook_entry.o \
|
|
stdio_vfprintf.o \
|
|
stdio_vfscanf.o \
|
|
stdio_vprintf.o \
|
|
stdio_vsnprintf.o \
|
|
stdio_vsnprintf_hook_entry.o \
|
|
stdio_vsprintf.o \
|
|
stdio_vsprintf_hook_entry.o \
|
|
stdlib_abort.o \
|
|
stdlib_abs.o \
|
|
stdlib_alloca.o \
|
|
stdlib_assertion_failure.o \
|
|
stdlib_atexit.o \
|
|
stdlib_atoi.o \
|
|
stdlib_atol.o \
|
|
stdlib_bsearch.o \
|
|
stdlib_calloc.o \
|
|
stdlib_checkdetach.o \
|
|
stdlib_constructor.o \
|
|
stdlib_constructor_begin.o \
|
|
stdlib_constructor_end.o \
|
|
stdlib_data.o \
|
|
stdlib_default_pool_size.o \
|
|
stdlib_default_puddle_size.o \
|
|
stdlib_destructor.o \
|
|
stdlib_detach.o \
|
|
stdlib_disablerequesters.o \
|
|
stdlib_div.o \
|
|
stdlib_divsi3.o \
|
|
stdlib_divsi4.o \
|
|
stdlib_dosbase.o \
|
|
stdlib_exit.o \
|
|
stdlib_free.o \
|
|
stdlib_getdefstacksize.o \
|
|
stdlib_getenv.o \
|
|
stdlib_getsp.o \
|
|
stdlib_init_exit.o \
|
|
stdlib_isresident.o \
|
|
stdlib_labs.o \
|
|
stdlib_ldiv.o \
|
|
stdlib_machine_test.o \
|
|
stdlib_malloc.o \
|
|
stdlib_math.o \
|
|
stdlib_mkdtemp.o \
|
|
stdlib_mkstemp.o \
|
|
stdlib_mktemp.o \
|
|
stdlib_modsi3.o \
|
|
stdlib_mulsi3.o \
|
|
stdlib_never_free.o \
|
|
stdlib_putenv.o \
|
|
stdlib_qsort.o \
|
|
stdlib_rand.o \
|
|
stdlib_realloc.o \
|
|
stdlib_red_black.o \
|
|
stdlib_setenv.o \
|
|
stdlib_setjmp.o \
|
|
stdlib_shell_escape.o \
|
|
stdlib_showerror.o \
|
|
stdlib_socket.o \
|
|
stdlib_srand.o \
|
|
stdlib_stackargbytes.o \
|
|
stdlib_stackcheck.o \
|
|
stdlib_stackoverflow.o \
|
|
stdlib_stacksafezone.o \
|
|
stdlib_stacksize.o \
|
|
stdlib_stack_usage.o \
|
|
stdlib_startup.o \
|
|
stdlib_strtol.o \
|
|
stdlib_strtoul.o \
|
|
stdlib_strtoll.o \
|
|
stdlib_strtoull.o \
|
|
stdlib_swapstack.o \
|
|
stdlib_sysbase.o \
|
|
stdlib_system.o \
|
|
stdlib_termination_message.o \
|
|
stdlib_threshold.o \
|
|
stdlib_udivsi3.o \
|
|
stdlib_udivsi4.o \
|
|
stdlib_umodsi3.o \
|
|
stdlib_unsetenv.o \
|
|
stdlib_wildcard_expand.o \
|
|
strings_strcasecmp.o \
|
|
strings_strncasecmp.o \
|
|
string_bcmp.o \
|
|
string_bcopy.o \
|
|
string_bzero.o \
|
|
string_index.o \
|
|
string_memchr.o \
|
|
string_memcmp.o \
|
|
string_memcpy.o \
|
|
string_memmove.o \
|
|
string_memset.o \
|
|
string_rindex.o \
|
|
string_strcat.o \
|
|
string_strchr.o \
|
|
string_strcmp.o \
|
|
string_strcoll.o \
|
|
string_strcpy.o \
|
|
string_strcspn.o \
|
|
string_strdup.o \
|
|
string_strerror.o \
|
|
string_strlen.o \
|
|
string_strncat.o \
|
|
string_strncmp.o \
|
|
string_strncpy.o \
|
|
string_strpbrk.o \
|
|
string_strrchr.o \
|
|
string_strspn.o \
|
|
string_strstr.o \
|
|
string_strtok.o \
|
|
string_strxfrm.o \
|
|
time_asctime.o \
|
|
time_clock.o \
|
|
time_converttime.o \
|
|
time_ctime.o \
|
|
time_data.o \
|
|
time_gettimeofday.o \
|
|
time_gmtime.o \
|
|
time_localtime.o \
|
|
time_mktime.o \
|
|
time_numbertostring.o \
|
|
time_strftime.o \
|
|
time_time.o \
|
|
unistd_access.o \
|
|
unistd_chdir.o \
|
|
unistd_chdir_exit.o \
|
|
unistd_chown.o \
|
|
unistd_currentpathname.o \
|
|
unistd_dup.o \
|
|
unistd_dup2.o \
|
|
unistd_fchown.o \
|
|
unistd_fdopen.o \
|
|
unistd_fileno.o \
|
|
unistd_ftruncate.o \
|
|
unistd_getcwd.o \
|
|
unistd_getopt.o \
|
|
unistd_getpid.o \
|
|
unistd_init_exit.o \
|
|
unistd_isatty.o \
|
|
unistd_lchown.o \
|
|
unistd_link.o \
|
|
unistd_readlink.o \
|
|
unistd_realpath.o \
|
|
unistd_sleep.o \
|
|
unistd_symlink.o \
|
|
unistd_timer.o \
|
|
unistd_time_delay.o \
|
|
unistd_truncate.o \
|
|
unistd_unlink.o \
|
|
unistd_usleep.o \
|
|
utime_utime.o
|
|
|
|
# All objects files which make up libunix.a
|
|
UNIX_LIB = \
|
|
unix.lib_rev.o \
|
|
dirent_closedir.o \
|
|
dirent_data.o \
|
|
dirent_rewinddir.o \
|
|
dirent_opendir.o \
|
|
dirent_readdir.o \
|
|
fcntl_creat.o \
|
|
fcntl_fcntl.o \
|
|
fcntl_open.o \
|
|
fcntl_get_default_file.o \
|
|
mount_convertinfo.o \
|
|
mount_statfs.o \
|
|
stat_chmod.o \
|
|
stat_fstat.o \
|
|
stat_lstat.o \
|
|
stat_mkdir.o \
|
|
stat_rmdir.o \
|
|
stat_stat.o \
|
|
stdio_fdhookentry.o \
|
|
stdio_fflush.o \
|
|
stdio_fopen.o \
|
|
stdio_fopen.o \
|
|
stdio_init_exit.o \
|
|
stdio_locksemaphorename.o \
|
|
stdio_openiob.o \
|
|
stdio_popen.o \
|
|
stdio_remove.o \
|
|
stdio_rename.o \
|
|
stdlib_mkdtemp.o \
|
|
stdlib_mkstemp.o \
|
|
stdlib_mkstemp.o \
|
|
stdlib_mktemp.o \
|
|
stdlib_system.o \
|
|
unistd_access.o \
|
|
unistd_chdir.o \
|
|
unistd_chdir_exit.o \
|
|
unistd_chown.o \
|
|
unistd_getcwd.o \
|
|
unistd_lchown.o \
|
|
unistd_link.o \
|
|
unistd_readlink.o \
|
|
unistd_realpath.o \
|
|
unistd_restorepathname.o \
|
|
unistd_setcurrentpath.o \
|
|
unistd_strip_double_slash.o \
|
|
unistd_translatea2u.o \
|
|
unistd_translaterel.o \
|
|
unistd_translateu2a.o \
|
|
unistd_truncate.o \
|
|
unistd_unix_path_semantics.o \
|
|
unistd_unlink.o \
|
|
unistd_wildcard_expand.o \
|
|
utime_utime.o
|
|
|
|
# All objects files which make up libm.a
|
|
MATH_LIB = \
|
|
math_acos.o \
|
|
math_asin.o \
|
|
math_atan.o \
|
|
math_atan2.o \
|
|
math_ceil.o \
|
|
math_cos.o \
|
|
math_cosh.o \
|
|
math_data.o \
|
|
math_exp.o \
|
|
math_fabs.o \
|
|
math_floor.o \
|
|
math_fmod.o \
|
|
math_frexp.o \
|
|
math_hypot.o \
|
|
math_init_exit.o \
|
|
math_isnan.o \
|
|
math_isinf.o \
|
|
math_ldexp.o \
|
|
math_log.o \
|
|
math_log10.o \
|
|
math_logb.o \
|
|
math_modf.o \
|
|
math_pow.o \
|
|
math_rint.o \
|
|
math_rintf.o \
|
|
math_sin.o \
|
|
math_sinh.o \
|
|
math_sqrt.o \
|
|
math_tan.o \
|
|
math_tanh.o \
|
|
math_kernel_expm1.o \
|
|
math_kernel_scalbn.o \
|
|
math_kernel_tan.o \
|
|
math_kernel_cos.o \
|
|
math_kernel_rem_pio2.o \
|
|
math_kernel_sin.o \
|
|
stdio_asprintf.o \
|
|
stdio_flush.o \
|
|
stdio_fprintf.o \
|
|
stdio_fscanf.o \
|
|
stdio_printf.o \
|
|
stdio_scanf.o \
|
|
stdio_snprintf.o \
|
|
stdio_sprintf.o \
|
|
stdio_sscanf.o \
|
|
stdio_vasprintf.o \
|
|
stdio_vfprintf.o \
|
|
stdio_vfscanf.o \
|
|
stdio_vprintf.o \
|
|
stdio_vsnprintf.o \
|
|
stdio_vsprintf.o \
|
|
stdlib_atof.o \
|
|
stdlib_machine_test.o \
|
|
stdlib_strtod.o \
|
|
time_difftime.o
|
|
|
|
# All objects files which make up libnet.a
|
|
NET_LIB = \
|
|
net.lib_rev.o \
|
|
socket_accept.o \
|
|
socket_bind.o \
|
|
socket_connect.o \
|
|
socket_data.o \
|
|
socket_gethostbyaddr.o \
|
|
socket_gethostbyname.o \
|
|
socket_gethostid.o \
|
|
socket_gethostname.o \
|
|
socket_getnetbyaddr.o \
|
|
socket_getnetbyname.o \
|
|
socket_getpeername.o \
|
|
socket_getprotobyname.o \
|
|
socket_getprotobynumber.o \
|
|
socket_getservbyname.o \
|
|
socket_getservbyport.o \
|
|
socket_getsockname.o \
|
|
socket_getsockopt.o \
|
|
socket_get_descriptor.o \
|
|
socket_inet_addr.o \
|
|
socket_inet_aton.o \
|
|
socket_inet_lnaof.o \
|
|
socket_inet_makeaddr.o \
|
|
socket_inet_netof.o \
|
|
socket_inet_network.o \
|
|
socket_inet_ntoa.o \
|
|
socket_init_exit.o \
|
|
socket_ioctl.o \
|
|
socket_isdaemon.o \
|
|
socket_listen.o \
|
|
socket_recv.o \
|
|
socket_recvfrom.o \
|
|
socket_recvmsg.o \
|
|
socket_select.o \
|
|
socket_send.o \
|
|
socket_sendmsg.o \
|
|
socket_sendto.o \
|
|
socket_setsockopt.o \
|
|
socket_shutdown.o \
|
|
socket_socket.o \
|
|
socket_hook_entry.o \
|
|
socket_hstrerror.o \
|
|
stat_umask.o \
|
|
usergroup_crypt.o \
|
|
usergroup_data.o \
|
|
usergroup_endgrent.o \
|
|
usergroup_endpwent.o \
|
|
usergroup_getegid.o \
|
|
usergroup_geteuid.o \
|
|
usergroup_getgid.o \
|
|
usergroup_getgrent.o \
|
|
usergroup_getgrgid.o \
|
|
usergroup_getgrnam.o \
|
|
usergroup_getgroups.o \
|
|
usergroup_getpass.o \
|
|
usergroup_getpwent.o \
|
|
usergroup_getpwnam.o \
|
|
usergroup_getpwuid.o \
|
|
usergroup_getuid.o \
|
|
usergroup_initgroups.o \
|
|
usergroup_init_exit.o \
|
|
usergroup_rootmode.o \
|
|
usergroup_setegid.o \
|
|
usergroup_seteuid.o \
|
|
usergroup_setgid.o \
|
|
usergroup_setgrent.o \
|
|
usergroup_setgroups.o \
|
|
usergroup_setpwent.o \
|
|
usergroup_setregid.o \
|
|
usergroup_setreuid.o \
|
|
usergroup_setsid.o \
|
|
usergroup_setuid.o
|
|
|
|
# All objects files which make up libdebug.a
|
|
DEBUG_LIB = \
|
|
debug.lib_rev.o \
|
|
debug.o \
|
|
debug_cmpstrexec.o \
|
|
debug_kcmpstr.o \
|
|
debug_kdofmt.o \
|
|
debug_kgetc.o \
|
|
debug_kgetch1.o \
|
|
debug_kgetch2.o \
|
|
debug_kgetchar1.o \
|
|
debug_kgetchar2.o \
|
|
debug_kgetnum1.o \
|
|
debug_kgetnum2.o \
|
|
debug_kmaygetch.o \
|
|
debug_kmaygetchar.o \
|
|
debug_kprintf1.o \
|
|
debug_kprintf2.o \
|
|
debug_kputc.o \
|
|
debug_kputch1.o \
|
|
debug_kputch2.o \
|
|
debug_kputchar1.o \
|
|
debug_kputchar2.o \
|
|
debug_kputfmt.o \
|
|
debug_kputs1.o \
|
|
debug_kputs2.o \
|
|
debug_kputstr1.o \
|
|
debug_kputstr2.o \
|
|
debug_kvprintf1.o \
|
|
debug_kvprintf2.o \
|
|
debug_level.o
|
|
|
|
# All objects files which make up libamiga.a
|
|
AMIGA_LIB = \
|
|
amiga.lib_rev.o \
|
|
amiga_acrypt.o \
|
|
amiga_addtof.o \
|
|
amiga_argarraydone.o \
|
|
amiga_argarrayinit.o \
|
|
amiga_argint.o \
|
|
amiga_argstring.o \
|
|
amiga_beginio.o \
|
|
amiga_callhooka.o \
|
|
amiga_coercemethod.o \
|
|
amiga_createextio.o \
|
|
amiga_createport.o \
|
|
amiga_createstdio.o \
|
|
amiga_createtask.o \
|
|
amiga_deleteextio.o \
|
|
amiga_deleteport.o \
|
|
amiga_deletestdio.o \
|
|
amiga_deletetask.o \
|
|
amiga_domethod.o \
|
|
amiga_dosupermethod.o \
|
|
amiga_dotimer.o \
|
|
amiga_fastrand.o \
|
|
amiga_freeievents.o \
|
|
amiga_hotkey.o \
|
|
amiga_invertstring.o \
|
|
amiga_newlist.o \
|
|
amiga_rangerand.o \
|
|
amiga_remtof.o \
|
|
amiga_setsuperattrs.o \
|
|
amiga_timedelay.o \
|
|
amiga_waitbeam.o
|
|
|
|
##############################################################################
|
|
|
|
# The libraries to be built, prefixed by the respective path names
|
|
LIBS := \
|
|
$(LIBC_OBJS)/libc.a \
|
|
$(LIBUNIX_OBJS)/libunix.a \
|
|
$(LIBDEBUG_OBJS)/libdebug.a \
|
|
$(LIBAMIGA_OBJS)/libamiga.a \
|
|
$(LIBM_OBJS)/libm.a \
|
|
$(LIBNET_OBJS)/libnet.a
|
|
|
|
##############################################################################
|
|
|
|
# The startup object files to be built
|
|
STARTUPS := bcrt0.o bcrtbegin.o bcrtend.o crt0.o crtbegin.o crtend.o mainb.o mainnb.o
|
|
|
|
##############################################################################
|
|
|
|
# This is the first target: it creates the necessary directories, then proceeds
|
|
# to build the startup object files and finally the libraries
|
|
all: \
|
|
lib \
|
|
lib/soft-float \
|
|
lib/small-data \
|
|
small_data \
|
|
large_data \
|
|
large_data_softfloat \
|
|
lib/bcrt0.o \
|
|
lib/bcrtbegin.o \
|
|
lib/bcrtend.o \
|
|
lib/crt0.o \
|
|
lib/crtbegin.o \
|
|
lib/crtend.o \
|
|
lib/mainb.o \
|
|
lib/mainnb.o \
|
|
lib/libm.a \
|
|
lib/small-data/libm.a \
|
|
lib/soft-float/libm.a
|
|
|
|
##############################################################################
|
|
|
|
# Delete all object files and libraries
|
|
clean:
|
|
-$(DELETE) $(STARTUPS) lib small_data large_data large_data_softfloat
|
|
|
|
##############################################################################
|
|
|
|
# Update the version numbers bound to the individual libraries
|
|
version:
|
|
cp c.lib_rev.rev amiga.lib_rev.rev
|
|
cp c.lib_rev.rev debug.lib_rev.rev
|
|
cp c.lib_rev.rev m.lib_rev.rev
|
|
cp c.lib_rev.rev m881.lib_rev.rev
|
|
cp c.lib_rev.rev net.lib_rev.rev
|
|
cp c.lib_rev.rev stack.lib_rev.rev
|
|
cp c.lib_rev.rev unix.lib_rev.rev
|
|
bumprev 1 amiga.lib
|
|
bumprev 1 c.lib
|
|
bumprev 1 debug.lib
|
|
bumprev 1 m.lib
|
|
bumprev 1 m881.lib
|
|
bumprev 1 net.lib
|
|
bumprev 1 stack.lib
|
|
bumprev 1 unix.lib
|
|
|
|
##############################################################################
|
|
|
|
# Tag all files with a certain version number
|
|
cvs-tag:
|
|
cvs -q tag V1_`cat c.lib_rev.rev`
|
|
|
|
##############################################################################
|
|
|
|
# This target first creates a directory to store the object files in, then
|
|
# proceeds to build the libraries from the code. It is invoked by the
|
|
# individual library build targets below.
|
|
all_libraries: $(TYPE) $(LIBS)
|
|
|
|
##############################################################################
|
|
|
|
# These create the required subdirectories to store object files and
|
|
# libraries in
|
|
lib:
|
|
-$(MAKEDIR) $@
|
|
|
|
lib/small-data: lib
|
|
-$(MAKEDIR) $@
|
|
|
|
lib/soft-float: lib
|
|
-$(MAKEDIR) $@
|
|
|
|
small_data:
|
|
-$(MAKEDIR) $@
|
|
|
|
large_data:
|
|
-$(MAKEDIR) $@
|
|
|
|
large_data_softfloat:
|
|
-$(MAKEDIR) $@
|
|
|
|
##############################################################################
|
|
|
|
# Dependencies for libm.a (large data variant with hardware floating point code
|
|
# support): this actually ends up building all the libraries rather than just
|
|
# libm.a
|
|
lib/libm.a: large_data large_data/libm.a
|
|
|
|
large_data/libm.a:
|
|
$(MAKE) TYPE=large_data all_libraries
|
|
$(COPY) $(foreach file,$(LIBS),large_data/$(file)) lib
|
|
|
|
##############################################################################
|
|
|
|
# Dependencies for libm.a (large data variant with software floating point code
|
|
# support): this actually ends up building all the libraries rather than just
|
|
# libm.a
|
|
lib/soft-float/libm.a: large_data_softfloat large_data_softfloat/libm.a
|
|
|
|
large_data_softfloat/libm.a:
|
|
$(MAKE) TYPE=large_data_softfloat all_libraries
|
|
$(COPY) $(foreach file,$(LIBS),large_data_softfloat/$(file)) lib/soft-float
|
|
|
|
##############################################################################
|
|
|
|
# Dependencies for libm.a (small data variant): this actually ends up building all
|
|
# the libraries rather than just libm.a
|
|
lib/small-data/libm.a: small_data small_data/libm.a
|
|
|
|
small_data/libm.a:
|
|
$(MAKE) TYPE=small_data all_libraries
|
|
$(COPY) $(foreach file,$(LIBS),small_data/$(file)) lib/small-data
|
|
|
|
##############################################################################
|
|
|
|
# Rules to build and move the startup code
|
|
lib/crt0.o : lib crt0.o
|
|
$(COPY) crt0.o lib
|
|
|
|
lib/crtbegin.o : lib crtbegin.o
|
|
$(COPY) crtbegin.o lib
|
|
|
|
lib/crtend.o : lib crtend.o
|
|
$(COPY) crtend.o lib
|
|
|
|
lib/mainnb.o : lib mainnb.o
|
|
$(COPY) mainnb.o lib
|
|
|
|
lib/mainb.o : lib mainb.o
|
|
$(COPY) mainb.o lib
|
|
|
|
lib/bcrt0.o : lib bcrt0.o
|
|
$(COPY) bcrt0.o lib
|
|
|
|
lib/bcrtbegin.o : lib bcrtbegin.o
|
|
$(COPY) bcrtbegin.o lib
|
|
|
|
lib/bcrtend.o : lib bcrtend.o
|
|
$(COPY) bcrtend.o lib
|
|
|
|
##############################################################################
|
|
|
|
# Individual dependencies which tell make to build the object files from
|
|
# 'C' source files rather than the assembly language source files of the
|
|
# same name (e.g. stdlib_getsp.c instead of stdlib_getsp.asm).
|
|
$(LIBC_OBJS)/stdlib_getsp.o : stdlib_getsp.c
|
|
|
|
$(LIBC_OBJS)/stdlib_swapstack.o : stdlib_swapstack.c
|
|
|
|
$(LIBC_OBJS)/stdlib_setjmp.o : stdlib_setjmp.c
|
|
|
|
##############################################################################
|
|
|
|
# Build rules for version information that goes into each library
|
|
$(LIBC_OBJS)/c.lib_rev.o : c.lib_rev.c c.lib_rev.h
|
|
|
|
$(LIBUNIX_OBJS)/unix.lib_rev.o : unix.lib_rev.c unix.lib_rev.h
|
|
|
|
$(LIBM_OBJS)/m.lib_rev.o : m.lib_rev.c m.lib_rev.h
|
|
|
|
$(LIBNET_OBJS)/net.lib_rev.o : net.lib_rev.c net.lib_rev.h
|
|
|
|
$(LIBDEBUG_OBJS)/debug.lib_rev.o : debug.lib_rev.c debug.lib_rev.h
|
|
|
|
$(LIBAMIGA_OBJS)/amiga.lib_rev.o : amiga.lib_rev.c amiga.lib_rev.h
|
|
|
|
##############################################################################
|
|
|
|
# Build rules for the debug version of the library which has special
|
|
# memory allocation debugging code, controlled by the contents of
|
|
# the stdlib_mem_debug.h file.
|
|
$(LIBC_OBJS)/stdlib_alloca.o : stdlib_alloca.c stdlib_mem_debug.h
|
|
|
|
$(LIBC_OBJS)/stdlib_calloc.o : stdlib_calloc.c stdlib_mem_debug.h
|
|
|
|
$(LIBC_OBJS)/stdlib_free.o : stdlib_free.c stdlib_mem_debug.h
|
|
|
|
$(LIBC_OBJS)/stdlib_init_exit.o : stdlib_init_exit.c stdlib_mem_debug.h
|
|
|
|
$(LIBC_OBJS)/stdlib_malloc.o : stdlib_malloc.c stdlib_mem_debug.h
|
|
|
|
$(LIBC_OBJS)/stdlib_realloc.o : stdlib_realloc.c stdlib_mem_debug.h
|
|
|
|
$(LIBC_OBJS)/stdlib_red_black.o : stdlib_red_black.c stdlib_mem_debug.h
|
|
|
|
##############################################################################
|
|
|
|
# Individual build rules for libc.a
|
|
$(LIBC_OBJS) :
|
|
$(MAKEDIR) $@
|
|
|
|
$(LIBC_OBJS)/libc.a : $(LIBC_OBJS) $(foreach file,$(C_LIB),$(LIBC_OBJS)/$(file))
|
|
-$(DELETE) $@
|
|
@$(AR) $@ $(foreach file,$(C_LIB),$(LIBC_OBJS)/$(file))
|
|
$(RANLIB) $@
|
|
|
|
##############################################################################
|
|
|
|
# Individual build rules for libunix.a
|
|
$(LIBUNIX_OBJS) :
|
|
$(MAKEDIR) $@
|
|
|
|
$(LIBUNIX_OBJS)/libunix.a : $(LIBUNIX_OBJS) $(foreach file,$(UNIX_LIB),$(LIBUNIX_OBJS)/$(file))
|
|
-$(DELETE) $@
|
|
@$(AR) $@ $(foreach file,$(UNIX_LIB),$(LIBUNIX_OBJS)/$(file))
|
|
$(RANLIB) $@
|
|
|
|
##############################################################################
|
|
|
|
# Individual build rules for libm.a
|
|
$(LIBM_OBJS) :
|
|
$(MAKEDIR) $@
|
|
|
|
$(LIBM_OBJS)/libm.a : $(LIBM_OBJS) $(foreach file,$(MATH_LIB),$(LIBM_OBJS)/$(file))
|
|
-$(DELETE) $@
|
|
@$(AR) $@ $(foreach file,$(MATH_LIB),$(LIBM_OBJS)/$(file))
|
|
$(RANLIB) $@
|
|
|
|
##############################################################################
|
|
|
|
# Individual build rules for libnet.a
|
|
$(LIBNET_OBJS) :
|
|
$(MAKEDIR) $@
|
|
|
|
$(LIBNET_OBJS)/libnet.a : $(LIBNET_OBJS) $(foreach file,$(NET_LIB),$(LIBNET_OBJS)/$(file))
|
|
-$(DELETE) $@
|
|
@$(AR) $@ $(foreach file,$(NET_LIB),$(LIBNET_OBJS)/$(file))
|
|
$(RANLIB) $@
|
|
|
|
##############################################################################
|
|
|
|
# Individual build rules for libdebug.a
|
|
$(LIBDEBUG_OBJS) :
|
|
$(MAKEDIR) $@
|
|
|
|
$(LIBDEBUG_OBJS)/libdebug.a : $(LIBDEBUG_OBJS) $(foreach file,$(DEBUG_LIB),$(LIBDEBUG_OBJS)/$(file))
|
|
-$(DELETE) $@
|
|
@$(AR) $@ $(foreach file,$(DEBUG_LIB),$(LIBDEBUG_OBJS)/$(file))
|
|
$(RANLIB) $@
|
|
|
|
##############################################################################
|
|
|
|
# Individual build rules for libamiga.a
|
|
$(LIBAMIGA_OBJS) :
|
|
$(MAKEDIR) $@
|
|
|
|
$(LIBAMIGA_OBJS)/libamiga.a : $(LIBAMIGA_OBJS) $(foreach file,$(AMIGA_LIB),$(LIBAMIGA_OBJS)/$(file))
|
|
-$(DELETE) $@
|
|
@$(AR) $@ $(foreach file,$(AMIGA_LIB),$(LIBAMIGA_OBJS)/$(file))
|
|
$(RANLIB) $@
|
|
|
|
##############################################################################
|
|
|
|
# Individual build rules for the startup code.
|
|
crt0.o : crt0.S
|
|
@echo "Assembling $<"
|
|
@$(CC) -Wa,-mregnames -o crt0.o -c crt0.S
|
|
|
|
bcrt0.o : crt0.S
|
|
@echo "Assembling $<"
|
|
@$(CC) -DSMALL_DATA -Wa,-mregnames -o bcrt0.o -c crt0.S
|
|
|
|
mainnb.o : stdlib_main.c
|
|
@echo "Compiling $<"
|
|
@$(CC) -o mainnb.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -msdata=data stdlib_main.c
|
|
|
|
mainb.o : stdlib_main.c
|
|
@echo "Compiling $<"
|
|
@$(CC) -o mainb.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -msdata=sysv -DSMALL_DATA stdlib_main.c
|
|
|
|
bcrtbegin.o : crtbegin.c
|
|
$(CC) -o bcrtbegin.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -msdata=sysv -DSMALL_DATA crtbegin.c
|
|
|
|
bcrtend.o : crtend.c
|
|
$(CC) -o bcrtend.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -msdata=sysv -DSMALL_DATA crtend.c
|