# Makefile
# $Id: Makefile,v 1.3 2007/11/01 05:54:46 sendan Exp $
# masashi shimakura
#
AR = ar
AR_OPT = rcus
CC = gcc
RM = rm

#####  for gcc-4.*  ##### 
#CFLAGS = -Wall -Wextra -Wformat=2 -O3 -g
#CFLAGS = -Wall -Wextra -Wformat=2 -O2 -ftrapv -fmudflap -g
#CFLAGS = -Wall -Wextra -Wformat=2 -O2 -fmudflap -g
#CFLAGS = -Wall -Wextra -Wformat=2 -O2 -ftrapv -g
#CFLAGS = -Wall -Wextra -Wformat=2 -O2 -Wstrict-aliasing=2 -g
#CFLAGS = -Wall -Wextra -Wformat=2 -O2 -Wstrict-aliasing=2 -D_FORTIFY_SOURCE=2 -g
CFLAGS = -fPIC -Wall -Wextra -Wformat=2 -O2 -Wstrict-aliasing=2 -D_FORTIFY_SOURCE=2 -g
#CFLAGS = -Wall -Wextra -Wformat=2 -O2 -D_FORTIFY_SOURCE=1 -g


OBJS = delim_get.o safe_fdcat.o safe_fdcpm.o safe_filefdcat.o safe_fpcat.o \
       safe_memcpy.o safe_sprintf.o safe_strncat.o socket_reads.o socket_sends.o \
       mlexit.o self_memcpy.o socket_send.o select_fdcat.o alget_read.o alget_write.o \
       self_memcmp.o count_memcpy.o mem_count.o char_count.o char_point.o \
       char_get.o clean_mem.o set_mem.o rm_crlf.o delim_count.o memcount_cpm.o \
       ch_int.o swap_mem.o alversion.o file_copy.o count_memcpy2.o

INCLUDE = almemsys.h


all: almemsys.a libalmemsys.so almemsystest



almemsystest: almemsys.a test.o

	gcc -g -o almemsystest test.o almemsys.a


test: test.o

	gcc -g -c test.c

delim_get.o: delim_get.c ${INCLUDE}

	${CC} ${CFLAGS} -c delim_get.c

safe_fdcat.o: safe_fdcat.c ${INCLUDE}

	${CC} ${CFLAGS} -c safe_fdcat.c

safe_fdcpm.o: safe_fdcpm.c ${INCLUDE}

	${CC} ${CFLAGS} -c safe_fdcpm.c

safe_filefdcat.o: safe_filefdcat.c ${INCLUDE}

	${CC} ${CFLAGS} -c safe_filefdcat.c

safe_fpcat.o: safe_fpcat.c ${INCLUDE}

	${CC} ${CFLAGS} -c safe_fpcat.c

safe_memcpy.o: safe_memcpy.c ${INCLUDE}

	${CC} ${CFLAGS} -c safe_memcpy.c

safe_sprintf.o: safe_sprintf.c ${INCLUDE}

	${CC} ${CFLAGS} -c safe_sprintf.c

safe_strncat.o: safe_strncat.c ${INCLUDE}

	${CC} ${CFLAGS} -c safe_strncat.c

socket_reads.o: socket_reads.c ${INCLUDE}

	${CC} ${CFLAGS} -c socket_reads.c

socket_sends.o: socket_sends.c ${INCLUDE}

	${CC} ${CFLAGS} -c socket_sends.c

socket_send.o: socket_send.c ${INCLUDE}

	${CC} ${CFLAGS} -c socket_send.c

select_fdcat.o: select_fdcat.c ${INCLUDE}

	${CC} ${CFLAGS} -c select_fdcat.c

alget_read.o: alget_read.c ${INCLUDE}

	${CC} ${CFLAGS} -c alget_read.c

alget_write.o: alget_write.c ${INCLUDE}

	${CC} ${CFLAGS} -c alget_write.c


## old memsys

mlexit.o: mlexit.c ${INCLUDE}

	${CC} ${CFLAGS} -c mlexit.c

self_memcpy.o: self_memcpy.c ${INCLUDE}

	${CC} ${CFLAGS} -c self_memcpy.c

self_memcmp.o: self_memcmp.c ${INCLUDE}

	${CC} ${CFLAGS} -c self_memcmp.c

self_strncat.o: self_strncat.c ${INCLUDE}

	${CC} ${CFLAGS} -c self_strncat.c

count_memcpy.o: count_memcpy.c ${INCLUDE}

	${CC} ${CFLAGS} -c count_memcpy.c

count_memcpy2.o: count_memcpy2.c ${INCLUDE}

	${CC} ${CFLAGS} -c count_memcpy2.c

mem_count.o: mem_count.c ${INCLUDE}

	${CC} ${CFLAGS} -c mem_count.c

char_count.o: char_count.c ${INCLUDE}

	${CC} ${CFLAGS} -c char_count.c

char_point.o: char_point.c ${INCLUDE}

	${CC} ${CFLAGS} -c char_point.c

char_get.o: char_get.c ${INCLUDE}

	${CC} ${CFLAGS} -c char_get.c

clean_mem.o: clean_mem.c ${INCLUDE}

	${CC} ${CFLAGS} -c clean_mem.c

set_mem.o: set_mem.c ${INCLUDE}

	${CC} ${CFLAGS} -c set_mem.c

rm_crlf.o: rm_crlf.c ${INCLUDE}

	${CC} ${CFLAGS} -c rm_crlf.c

delim_count.o: delim_count.c ${INCLUDE}

	${CC} ${CFLAGS} -c delim_count.c

memcount_cpm.o: memcount_cpm.c ${INCLUDE}

	${CC} ${CFLAGS} -c memcount_cpm.c

ch_int.o: ch_int.c ${INCLUDE}

	${CC} ${CFLAGS} -c ch_int.c

swap_mem.o: swap_mem.c ${INCLUDE}

	${CC} ${CFLAGS} -c swap_mem.c

alversion.o: alversion.c ${INCLUDE}

	${CC} ${CFLAGS} -c alversion.c


## lincd 

almemsys.a: ${OBJS}

	${AR} ${AR_OPT} almemsys.a ${OBJS}

libalmemsys.so: ${OBJS}

	gcc -shared -Wl,-soname,libalmemsys.so.0 -o libalmemsys.so ${OBJS}

## file

file_copy.o: file_copy.c ${INCLUDE}

	${CC} ${CFLAGS} -c file_copy.c



clean:
	${RM} -f *.a *.o *.core *.bak *.so almemsystest



