mirror of
https://github.com/adtools/clib2.git
synced 2025-12-08 14:59:05 +00:00
function pointers alone. The utility.library/CallHookPkt mechanism is no longer required. - Moved the entire lseek() code relevant for files into the hook function. - Simplified the close() function which now just calls into the hook code to perform whatever is necessary. The hook code is responsible for cleaning up after aliases, etc. This change in turn made it possible to greatly simplify the hook code for buffered files which now bypasses close/read/write/lseek and directly invokes the hook code for unbuffered files. git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14835 87f5fb63-7c3d-0410-a384-fd976d0f7a62
1090 lines
27 KiB
Plaintext
1090 lines
27 KiB
Plaintext
#
|
|
# $Id: GNUmakefile.os4,v 1.28 2005-02-20 13:19:40 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 -a
|
|
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
|
|
|
|
ifeq (baserel,$(TYPE))
|
|
CODE_TYPE := -mbaserel -DBASEREL_DATA
|
|
FLOAT_TYPE := -DPPC_FLOATING_POINT_SUPPORT
|
|
endif
|
|
|
|
|
|
##############################################################################
|
|
|
|
WARNINGS = \
|
|
-Wall -W -Wpointer-arith -Wsign-compare -Wmissing-prototypes \
|
|
-Wundef -Wbad-function-cast -Wmissing-declarations -Wunused
|
|
|
|
# -Wconversion -Wshadow
|
|
|
|
INCLUDES = -Iinclude -I. -I$(SDK_INCLUDE)
|
|
OPTIONS = -DNDEBUG -DUSE_64_BIT_INTS -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_examine_fh.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_grow_file.o \
|
|
stdio_initializefd.o \
|
|
stdio_initializeiob.o \
|
|
stdio_init_exit.o \
|
|
stdio_iobhookentry.o \
|
|
stdio_locksemaphorename.o \
|
|
stdio_nostdio.o \
|
|
stdio_openiob.o \
|
|
stdio_parent_of_fh.o \
|
|
stdio_perror.o \
|
|
stdio_popen.o \
|
|
stdio_printf.o \
|
|
stdio_putc.o \
|
|
stdio_putchar.o \
|
|
stdio_puts.o \
|
|
stdio_remove.o \
|
|
stdio_remove_fd_alias.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_get_errno.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_osliberror.o \
|
|
stdlib_oslibversion.o \
|
|
stdlib_priority.o \
|
|
stdlib_process_name.o \
|
|
stdlib_putenv.o \
|
|
stdlib_qsort.o \
|
|
stdlib_rand.o \
|
|
stdlib_realloc.o \
|
|
stdlib_red_black.o \
|
|
stdlib_set_errno.o \
|
|
stdlib_setenv.o \
|
|
stdlib_setjmp.o \
|
|
stdlib_set_process_window.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 \
|
|
stdlib_stdio_window_spec.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_strlcat.o \
|
|
string_strlcpy.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_strtok_r.o \
|
|
string_strxfrm.o \
|
|
time_asctime.o \
|
|
time_asctime_r.o \
|
|
time_clock.o \
|
|
time_converttime.o \
|
|
time_convert_datestamp.o \
|
|
time_convert_time.o \
|
|
time_ctime.o \
|
|
time_ctime_r.o \
|
|
time_data.o \
|
|
time_days_per_date.o \
|
|
time_gettimeofday.o \
|
|
time_gmtime.o \
|
|
time_gmtime_r.o \
|
|
time_localtime.o \
|
|
time_localtime_r.o \
|
|
time_mktime.o \
|
|
time_numbertostring.o \
|
|
time_strftime.o \
|
|
time_time.o \
|
|
time_weekday.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_fdatasync.o \
|
|
unistd_fdopen.o \
|
|
unistd_fileno.o \
|
|
unistd_fsync.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_sync_fd.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_init_exit.o \
|
|
stdio_locksemaphorename.o \
|
|
stdio_openiob.o \
|
|
stdio_popen.o \
|
|
stdio_record_locking.o \
|
|
stdio_remove.o \
|
|
stdio_rename.o \
|
|
stdlib_mkdtemp.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_huge_val.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_rexxvars.o \
|
|
amiga_setsuperattrs.o \
|
|
amiga_timedelay.o \
|
|
amiga_waitbeam.o
|
|
|
|
MEMDEBUG_LIB = \
|
|
stdio_vasprintf_debug.o \
|
|
stdio_vasprintf_hook_entry_debug.o \
|
|
stdlib_alloca_debug.o \
|
|
stdlib_calloc_debug.o \
|
|
stdlib_free_debug.o \
|
|
stdlib_malloc_debug.o \
|
|
string_strdup_debug.o \
|
|
unistd_getcwd_debug.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 \
|
|
lib/baserel \
|
|
small_data \
|
|
large_data \
|
|
large_data_softfloat \
|
|
baserel \
|
|
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 \
|
|
lib/baserel/crt0.o \
|
|
lib/baserel/crtbegin.o \
|
|
lib/baserel/crtend.o \
|
|
lib/baserel/mainb.o \
|
|
lib/baserel/mainnb.o \
|
|
lib/baserel/libm.a
|
|
|
|
##############################################################################
|
|
|
|
# Delete all object files and libraries
|
|
clean:
|
|
-$(DELETE) $(STARTUPS) lib small_data large_data large_data_softfloat baserel
|
|
|
|
##############################################################################
|
|
|
|
# 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) $@
|
|
|
|
lib/baserel: lib
|
|
-$(MAKEDIR) $@
|
|
|
|
small_data:
|
|
-$(MAKEDIR) $@
|
|
|
|
large_data:
|
|
-$(MAKEDIR) $@
|
|
|
|
large_data_softfloat:
|
|
-$(MAKEDIR) $@
|
|
|
|
baserel:
|
|
-$(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
|
|
|
|
##############################################################################
|
|
|
|
# Dependencies for libm.a (baserel variant)
|
|
|
|
lib/baserel/libm.a: baserel baserel/libm.a
|
|
|
|
baserel/libm.a:
|
|
$(MAKE) TYPE=baserel all_libraries
|
|
$(COPY) $(foreach file,$(LIBS),baserel/$(file)) lib/baserel
|
|
|
|
##############################################################################
|
|
|
|
# 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
|
|
|
|
lib/baserel/crt0.o : lib baserel/crt0.o
|
|
$(COPY) baserel/crt0.o lib/baserel
|
|
|
|
lib/baserel/crtbegin.o : lib baserel/crtbegin.o
|
|
$(COPY) baserel/crtbegin.o lib/baserel
|
|
|
|
lib/baserel/crtend.o : lib baserel/crtend.o
|
|
$(COPY) baserel/crtend.o lib/baserel
|
|
|
|
lib/baserel/mainnb.o : lib baserel/mainnb.o
|
|
$(COPY) baserel/mainnb.o lib/baserel
|
|
|
|
lib/baserel/mainb.o : lib baserel/mainb.o
|
|
$(COPY) baserel/mainb.o lib/baserel
|
|
|
|
|
|
##############################################################################
|
|
|
|
# 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
|
|
|
|
##############################################################################
|
|
|
|
# Peculiar build rules for the debug versions of memory allocation functions,
|
|
# or at least those which use memory allocation functionality.
|
|
$(LIBC_OBJS)/stdlib_alloca_debug.o : stdlib_alloca.c
|
|
@echo "Compiling $< [$(TYPE):c debug]"
|
|
@$(CC) -o $(LIBC_OBJS)/stdlib_alloca_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdlib_alloca.c
|
|
|
|
$(LIBC_OBJS)/stdlib_calloc_debug.o : stdlib_calloc.c
|
|
@echo "Compiling $< [$(TYPE):c debug]"
|
|
@$(CC) -o $(LIBC_OBJS)/stdlib_calloc_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdlib_calloc.c
|
|
|
|
$(LIBC_OBJS)/stdlib_free_debug.o : stdlib_free.c
|
|
@echo "Compiling $< [$(TYPE):c debug]"
|
|
@$(CC) -o $(LIBC_OBJS)/stdlib_free_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdlib_free.c
|
|
|
|
$(LIBC_OBJS)/stdlib_malloc_debug.o : stdlib_malloc.c
|
|
@echo "Compiling $< [$(TYPE):c debug]"
|
|
@$(CC) -o $(LIBC_OBJS)/stdlib_malloc_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdlib_malloc.c
|
|
|
|
$(LIBC_OBJS)/stdlib_realloc_debug.o : stdlib_realloc.c
|
|
@echo "Compiling $< [$(TYPE):c debug]"
|
|
@$(CC) -o $(LIBC_OBJS)/stdlib_realloc_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdlib_realloc.c
|
|
|
|
$(LIBC_OBJS)/stdio_vasprintf_hook_entry_debug.o : stdio_vasprintf_hook_entry.c
|
|
@echo "Compiling $< [$(TYPE):c debug]"
|
|
@$(CC) -o $(LIBC_OBJS)/stdio_vasprintf_hook_entry_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdio_vasprintf_hook_entry.c
|
|
|
|
$(LIBC_OBJS)/stdio_vasprintf_debug.o : stdio_vasprintf.c
|
|
@echo "Compiling $< [$(TYPE):c debug]"
|
|
@$(CC) -o $(LIBC_OBJS)/stdio_vasprintf_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG stdio_vasprintf.c
|
|
|
|
$(LIBM_OBJS)/stdio_vasprintf_debug.o : stdio_vasprintf.c
|
|
@echo "Compiling $< [$(TYPE):m debug]"
|
|
@$(CC) -o $(LIBM_OBJS)/stdio_vasprintf_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG $(FLOAT_TYPE) stdio_vasprintf.c
|
|
|
|
$(LIBC_OBJS)/string_strdup_debug.o : string_strdup.c
|
|
@echo "Compiling $< [$(TYPE):c debug]"
|
|
@$(CC) -o $(LIBC_OBJS)/string_strdup_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG string_strdup.c
|
|
|
|
$(LIBC_OBJS)/unistd_getcwd_debug.o : unistd_getcwd.c
|
|
@echo "Compiling $< [$(TYPE):c debug]"
|
|
@$(CC) -o $(LIBC_OBJS)/unistd_getcwd_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG unistd_getcwd.c
|
|
|
|
$(LIBUNIX_OBJS)/unistd_getcwd_debug.o : unistd_getcwd.c
|
|
@echo "Compiling $< [$(TYPE):unix debug]"
|
|
@$(CC) -o $(LIBUNIX_OBJS)/unistd_getcwd_debug.o -c $(CFLAGS) -D__USE_MEM_TREES -D__MEM_DEBUG -DUNIX_PATH_SEMANTICS unistd_getcwd.c
|
|
|
|
##############################################################################
|
|
|
|
# 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
|
|
|
|
baserel/crt0.o : crt0.S
|
|
@echo "Assembling $<"
|
|
@$(CC) -Wa,-mregnames -o baserel/crt0.o -mbaserel -DBASEREL_DATA -c crt0.S
|
|
|
|
baserel/mainnb.o : stdlib_main.c
|
|
@echo "Compiling $<"
|
|
@$(CC) -o baserel/mainnb.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -mbaserel -DBASEREL_DATA stdlib_main.c
|
|
|
|
baserel/mainb.o : stdlib_main.c
|
|
@echo "Compiling $<"
|
|
@$(CC) -o baserel/mainb.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -mbaserel -DBASEREL_DATA stdlib_main.c
|
|
|
|
baserel/crtbegin.o : crtbegin.c
|
|
$(CC) -o baserel/crtbegin.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -mbaserel -DBASEREL_DATA crtbegin.c
|
|
|
|
baserel/crtend.o : crtend.c
|
|
$(CC) -o baserel/crtend.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(INCLUDES) -mbaserel -DBASEREL_DATA crtend.c
|