# Just a makefile # Compiler and compiler flags CC=gcc CFLAGS=-g -Wall -ansi -pedantic -Wmissing-declarations -Wmissing-prototypes -D__EXTENSIONS__ -D_GNU_SOURCE # Directory with libraries LIBDIRS=. # A list of executable, object, and library files EXE=shlnno OBJ=shlnno.o sysutil229.o display_line.o SLIB=libdispl.a DLIB=libsysutil229.so # Default target all: $(EXE) @echo "All is perfectly done!" # Other subtargets to make it happen $(EXE): shlnno.o $(SLIB) $(DLIB) $(CC) shlnno.o -L$(LIBDIRS) -ldispl -L$(LIBDIRS) -lsysutil229 -o shlnno shlnno.o: shlnno.c sysutil229.h display_line.h $(CC) $(CFLAGS) -c shlnno.c $(DLIB): sysutil229.o ld -shared -o $(DLIB) sysutil229.o $(SLIB): display_line.o ar -r $(SLIB) display_line.o display_line.o: display_line.h display_line.c $(CC) $(CFLAGS) -c display_line.c sysutil229.o: sysutil229.h sysutil229.c $(CC) $(CFLAGS) -c -fPIC sysutil229.c # Cleaning up afterwards clean: rm -f $(OBJ) clean-all: rm -f $(OBJ) $(EXE) $(SLIB) $(DLIB)