1
0
mirror of https://github.com/adtools/clib2.git synced 2025-12-08 14:59:05 +00:00
Files
amiga-clib2/library/GNUmakefile.68k
2017-01-22 15:10:03 +01:00

546 lines
17 KiB
Makefile

#
# $Id: GNUmakefile.68k,v 1.107 2010-10-20 13:50:16 obarthel Exp $
#
# vim:ts=8 ft=make:
#
##############################################################################
############################################
# find out the HOST operating system
# on which this makefile is run (default to AmigaOS)
HOST ?= $(shell uname)
ifeq ($(HOST),)
HOST = AmigaOS
endif
CC = gcc
AR = ar -q
RANLIB = ranlib
COPY = copy clone buf=0
DELETE = delete all quiet
MAKEDIR = makedir
MAKE = $(MAKE_COMMAND) -f GNUmakefile.68k
# override certain things for non-native builds
ifneq ($(HOST), AmigaOS)
CC = m68k-amigaos-gcc
AR = m68k-amigaos-ar -q
RANLIB = m68k-amigaos-ranlib
COPY = cp
DELETE = rm -rf
MAKEDIR = mkdir -p
endif
##############################################################################
ifeq (,$(TYPE))
LIBC_OBJS = libc_objs
LIBUNIX_OBJS = libunix_objs
LIBM_OBJS = libm_objs
LIBM881_OBJS = libm881_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
LIBM881_OBJS = $(TYPE)/libm881_objs
LIBNET_OBJS = $(TYPE)/libnet_objs
LIBDEBUG_OBJS = $(TYPE)/libdebug_objs
LIBAMIGA_OBJS = $(TYPE)/libamiga_objs
endif
##############################################################################
.c.o:
@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) -msoft-float -DIEEE_FLOATING_POINT_SUPPORT $<
$(LIBM881_OBJS)/%.o : %.c
@echo "Compiling $< [$(TYPE):m881]"
@$(CC) -o $(LIBM881_OBJS)/$*.o -c $(CFLAGS) -m68881 -DM68881_FLOATING_POINT_SUPPORT $<
$(LIBNET_OBJS)/%.o : %.c
@echo "Compiling $< [$(TYPE):net]"
@$(CC) -o $(LIBNET_OBJS)/$*.o -c $(CFLAGS) -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) $<
##############################################################################
ifeq (small_data_020,$(TYPE))
CODE_TYPE := -m68020-60
CODE_FLAGS := -fbaserel -DSMALL_DATA -DM68020 -DUSE_64_BIT_INTS
endif
ifeq (small_data,$(TYPE))
CODE_TYPE := -m68000
CODE_FLAGS := -fbaserel -DSMALL_DATA
endif
ifeq (small_data32,$(TYPE))
CODE_TYPE := -m68020-60
CODE_FLAGS := -fbaserel32 -DSMALL_DATA32 -DM68020 -DUSE_64_BIT_INTS
endif
ifeq (large_data_020,$(TYPE))
CODE_TYPE := -m68020-60
CODE_FLAGS := -DM68020 -DUSE_64_BIT_INTS
endif
ifeq (large_data,$(TYPE))
CODE_TYPE := -m68000
CODE_FLAGS :=
endif
##############################################################################
WARNINGS = \
-Wall -W -Wpointer-arith -Wsign-compare -Wmissing-prototypes \
-Wundef -Wbad-function-cast -Wmissing-declarations -Wunused
# -Wconversion -Wshadow
INCLUDES = -Iinclude -I. -Inetinclude
#OPTIONS = -fno-builtin -fno-common -DDEBUG
OPTIONS = -fno-builtin -fno-common -DNDEBUG
#OPTIONS = -fno-builtin -fno-common -DNDEBUG -D__THREAD_SAFE
#OPTIONS = -fno-builtin -fno-common -D__MEM_DEBUG
#OPTIONS = -fno-builtin -fno-common -DDEBUG -D__MEM_DEBUG -DNO_INLINE_STDARG
#OPTIMIZE = -O3 -fomit-frame-pointer -funroll-loops -finline-functions
OPTIMIZE = -O -fomit-frame-pointer -fstrength-reduce -finline-functions
#OPTIMIZE = -O2 -fomit-frame-pointer
#DEBUG = -g
CFLAGS = \
$(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) \
$(CODE_FLAGS) $(INCLUDES) $(CODE_TYPE)
##############################################################################
include libamiga.obj.gmk
include libc.obj.gmk
include libdebug.obj.gmk
include libm.obj.gmk
include libnet.obj.gmk
include libunix.obj.gmk
AMIGA_LIB := $(sort $(AMIGA_LIB_COMMON) $(AMIGA_LIB_OS3))
C_LIB := $(sort $(C_LIB_COMMON) $(C_LIB_OS3))
UNIX_LIB := $(sort $(UNIX_LIB_COMMON) $(UNIX_LIB_OS3))
MEMDEBUG_LIB = \
stdio_vasprintf_debug.o \
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
##############################################################################
LIBS_68K := $(LIBC_OBJS)/libc.a $(LIBUNIX_OBJS)/libunix.a \
$(LIBNET_OBJS)/libnet.a $(LIBDEBUG_OBJS)/libdebug.a \
$(LIBAMIGA_OBJS)/libamiga.a $(LIBM_OBJS)/libm.a
LIBS_020 := $(LIBM881_OBJS)/libm881.a $(LIBS_68K)
##############################################################################
# The 881 math library won't build in plain 68k mode
ifneq (,$(findstring 68020,$(CODE_FLAGS)))
LIBS := $(LIBS_020)
else
LIBS := $(LIBS_68K)
endif
##############################################################################
STARTUPS := nrcrt0.o nbcrt0.o nr32crt0.o nb32crt0.o ncrt0.o
##############################################################################
all: \
lib/nrcrt0.o \
lib/nbcrt0.o \
lib/ncrt0.o \
lib/n32bcrt0.o \
lib/n32rcrt0.o \
lib/libm020/libm.a \
lib/libm.a \
lib/libb/libm.a \
lib/libb/libm020/libm.a \
lib/libb32/libm020/libm.a
##############################################################################
clean:
-$(DELETE) $(TYPE) $(LIBS_020) $(STARTUPS) \
$(LIBC_OBJS) $(LIBUNIX_OBJS) $(LIBM_OBJS) \
$(LIBM881_OBJS) $(LIBNET_OBJS) $(LIBDEBUG_OBJS) \
$(LIBAMIGA_OBJS)
realclean:
$(MAKE) clean
-$(DELETE) lib small_data_020 small_data small_data32 large_data_020 \
large_data
##############################################################################
version:
copy clone c.lib_rev.rev amiga.lib_rev.rev
copy clone c.lib_rev.rev debug.lib_rev.rev
copy clone c.lib_rev.rev m.lib_rev.rev
copy clone c.lib_rev.rev m881.lib_rev.rev
copy clone c.lib_rev.rev net.lib_rev.rev
copy clone 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 unix.lib
##############################################################################
cvs-tag:
cvs -q tag V1_`type c.lib_rev.rev`
##############################################################################
kitchen_sink: $(TYPE) $(LIBS) $(STARTUPS)
##############################################################################
ifneq (,$(TYPE))
$(TYPE):
$(MAKEDIR) $@
endif
##############################################################################
lib:
-$(MAKEDIR) $@
lib/libb : lib
-$(MAKEDIR) $@
lib/libb/libm020 : lib lib/libb
-$(MAKEDIR) $@
lib/libb32/libm020 : lib lib/libb32
-$(MAKEDIR) $@
lib/libb32 : lib
-$(MAKEDIR) $@
lib/libm020 : lib
-$(MAKEDIR) $@
lib/libb/libm020/libm.a: lib lib/libb/libm020
$(MAKE) TYPE=small_data_020 kitchen_sink
@$(COPY) $(foreach file,$(LIBS_020),small_data_020/$(file)) lib/libb/libm020
lib/libb/libm.a: lib lib/libb
$(MAKE) TYPE=small_data kitchen_sink
@$(COPY) $(foreach file,$(LIBS_68K),small_data/$(file)) lib/libb
lib/libb32/libm020/libm.a: lib lib/libb32 lib/libb32/libm020
$(MAKE) TYPE=small_data32 kitchen_sink
@$(COPY) $(foreach file,$(LIBS_020),small_data32/$(file)) lib/libb32/libm020
lib/libm020/libm.a: lib lib/libm020
$(MAKE) TYPE=large_data_020 kitchen_sink
@$(COPY) $(foreach file,$(LIBS_020),large_data_020/$(file)) lib/libm020
lib/libm.a: lib
$(MAKE) TYPE=large_data kitchen_sink
@$(COPY) $(foreach file,$(LIBS_68K),large_data/$(file)) lib
lib/nrcrt0.o : lib nrcrt0.o
@$(COPY) nrcrt0.o lib
lib/nbcrt0.o : lib nbcrt0.o
@$(COPY) nbcrt0.o lib
lib/ncrt0.o : lib ncrt0.o
@$(COPY) ncrt0.o lib
lib/n32bcrt0.o : lib nb32crt0.o
@$(COPY) nb32crt0.o lib
lib/n32rcrt0.o : lib nr32crt0.o
@$(COPY) nr32crt0.o lib
##############################################################################
$(LIBAMIGA_OBJS)/amiga_hookentry.o : amiga_hookentry.c
$(LIBC_OBJS)/stdlib_getsp.o : stdlib_getsp.c
$(LIBC_OBJS)/stdlib_swapstack.o : stdlib_swapstack.c
$(LIBC_OBJS)/stdlib_setjmp.o : stdlib_setjmp.c
##############################################################################
$(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
$(LIBM881_OBJS)/m881.lib_rev.o : m881.lib_rev.c m881.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
##############################################################################
$(LIBC_OBJS)/stdlib_stacksize.o : stdlib_stacksize.c stdlib_gcc_help.h
$(LIBC_OBJS)/stdlib_getdefstacksize.o : stdlib_getdefstacksize.c stdlib_gcc_help.h
$(LIBC_OBJS)/stdlib_shell_escape.o : stdlib_shell_escape.c stdlib_gcc_help.h
$(LIBC_OBJS)/stdlib_alloca.o : stdlib_alloca.c stdlib_memory.h include/stdlib.h
$(LIBC_OBJS)/stdlib_calloc.o : stdlib_calloc.c stdlib_memory.h include/stdlib.h
$(LIBC_OBJS)/stdlib_free.o : stdlib_free.c stdlib_memory.h include/stdlib.h
$(LIBC_OBJS)/stdlib_malloc.o : stdlib_malloc.c stdlib_memory.h include/stdlib.h
$(LIBC_OBJS)/stdlib_slab.o : stdlib_slab.c stdlib_memory.h include/stdlib.h
$(LIBC_OBJS)/stdlib_slab_purge_threshold.o : stdlib_slab_purge_threshold.c stdlib_memory.h include/stdlib.h
$(LIBC_OBJS)/stdlib_get_slab_stats.o : stdlib_get_slab_stats.c stdlib_memory.h include/stdlib.h
$(LIBC_OBJS)/stdlib_free_unused_slabs.o : stdlib_free_unused_slabs.c stdlib_memory.h include/stdlib.h
$(LIBC_OBJS)/stdlib_decay_unused_slabs.o : stdlib_decay_unused_slabs.c stdlib_memory.h include/stdlib.h
$(LIBC_OBJS)/stdlib_get_slab_usage.o : stdlib_get_slab_usage.c stdlib_memory.h include/stdlib.h
$(LIBC_OBJS)/stdlib_get_slab_allocations.o : stdlib_get_slab_allocations.c stdlib_memory.h include/stdlib.h
$(LIBC_OBJS)/stdlib_realloc.o : stdlib_realloc.c stdlib_memory.h include/stdlib.h
$(LIBC_OBJS)/stdlib_red_black.o : stdlib_red_black.c stdlib_memory.h include/stdlib.h
##############################################################################
# The -fbaserel32 option requires the CPU type to be 68020, too.
ifneq (,$(findstring fbaserel32,$(CODE_FLAGS)))
LOCAL_CODE_FLAGS := $(CODE_FLAGS) $(CODE_TYPE)
else
LOCAL_CODE_FLAGS := $(CODE_FLAGS)
endif
$(LIBM881_OBJS)/math_init_exit.o : math_init_exit.c
@echo "Compiling $< [$(TYPE):m881]"
@$(CC) -o $(LIBM881_OBJS)/math_init_exit.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) -DM68881_FLOATING_POINT_SUPPORT $(INCLUDES) $<
$(LIBC_OBJS)/stdlib_machine_test.o : stdlib_machine_test.c
@echo "Compiling $< [$(TYPE):c]"
@$(CC) -o $(LIBC_OBJS)/stdlib_machine_test.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) $<
$(LIBC_OBJS)/stdlib_showerror.o : stdlib_showerror.c
@echo "Compiling $< [$(TYPE):c]"
@$(CC) -o $(LIBC_OBJS)/stdlib_showerror.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) $<
$(LIBC_OBJS)/stdlib_main.o : stdlib_main.c
@echo "Compiling $< [$(TYPE):c]"
@$(CC) -o $(LIBC_OBJS)/stdlib_main.o -c $(WARNINGS) $(OPTIMIZE) $(DEBUG) $(OPTIONS) $(LOCAL_CODE_FLAGS) $(INCLUDES) stdlib_main.c
##############################################################################
$(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) -DIEEE_FLOATING_POINT_SUPPORT -D__USE_MEM_TREES -D__MEM_DEBUG 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
##############################################################################
$(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) $@
##############################################################################
$(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) $@
##############################################################################
$(LIBM_OBJS) :
$(MAKEDIR) $@
$(LIBM_OBJS)/libm.a : $(LIBM_OBJS) $(foreach file,$(MATH_LIB_IEEE),$(LIBM_OBJS)/$(file))
-$(DELETE) $@
@$(AR) $@ $(foreach file,$(MATH_LIB_IEEE),$(LIBM_OBJS)/$(file))
$(RANLIB) $@
##############################################################################
$(LIBM881_OBJS) :
$(MAKEDIR) $@
$(LIBM881_OBJS)/libm881.a : $(LIBM881_OBJS) $(foreach file,$(MATH_LIB_881),$(LIBM881_OBJS)/$(file))
-$(DELETE) $@
@$(AR) $@ $(foreach file,$(MATH_LIB_881),$(LIBM881_OBJS)/$(file))
$(RANLIB) $@
##############################################################################
$(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) $@
##############################################################################
$(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) $@
##############################################################################
$(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) $@
##############################################################################
nrcrt0.o : nrcrt0.S
@echo "Assembling $< [resident]"
@$(CC) -traditional -o $@ -c nrcrt0.S
nr32crt0.o : nrcrt0.S
@echo "Assembling $< [resident32]"
@$(CC) -traditional -m68020 -DSMALL_DATA32 -o $@ -c nrcrt0.S
nbcrt0.o : ncrt0.S
@echo "Assembling $< [small_data]"
@$(CC) -traditional -DSMALL_DATA -o $@ -c ncrt0.S
nb32crt0.o : ncrt0.S
@echo "Assembling $< [small_data32]"
@$(CC) -traditional -m68020 -DSMALL_DATA32 -o $@ -c ncrt0.S
ncrt0.o : ncrt0.S
@echo "Assembling $< [large_data]"
@$(CC) -traditional -o $@ -c ncrt0.S
##############################################################################
CONSTRUCTOR_FILES = \
amiga_rexxvars.c \
dirent_closedir.c \
locale_init_exit.c \
math_init_exit.c \
sas_profile.c \
socket_init_exit.c \
stdio_file_init.c \
stdio_init_exit.c \
stdlib_alloca.c \
stdlib_arg.c \
stdlib_malloc.c \
stdlib_program_name.c \
stdlib_setenv.c \
time_clock.c \
unistd_chdir_exit.c \
unistd_init_exit.c \
unistd_timer.c \
unistd_wildcard_expand.c \
usergroup_init_exit.c
touch_constructor_files:
touch $(CONSTRUCTOR_FILES)