From a9e40a918260440bc37e770adaffc59790fd0976 Mon Sep 17 00:00:00 2001 From: Landon Curt Noll Date: Sat, 25 Mar 2023 02:53:26 -0700 Subject: [PATCH] fix Makefile and README.md for 2019/duble --- 2019/duble/.gitignore | 5 ++ 2019/duble/Makefile | 103 ++++++++++++++++++++++++++++++++++++------ 2019/duble/README.md | 52 +++++++++++---------- 3 files changed, 121 insertions(+), 39 deletions(-) diff --git a/2019/duble/.gitignore b/2019/duble/.gitignore index bb3cc836b..b4c82d6c7 100644 --- a/2019/duble/.gitignore +++ b/2019/duble/.gitignore @@ -1,3 +1,8 @@ Darwin +Darwin.alt +FreeBSD +FreeBSD.alt +Linux +Linux.alt prog prog.alt diff --git a/2019/duble/Makefile b/2019/duble/Makefile index 25892a66c..ea36fa2c5 100644 --- a/2019/duble/Makefile +++ b/2019/duble/Makefile @@ -65,14 +65,15 @@ X11_INCDIR= /opt/X11/include #CSILENCE= CSILENCE= -Wno-bitwise-op-parentheses -Wno-dangling-else -Wno-format-security \ -Wno-implicit-int -Wno-incompatible-pointer-types \ - -Wno-logical-op-parentheses -Wno-unused-value + -Wno-logical-op-parentheses -Wno-pedantic -Wno-return-type \ + -Wno-unused-value # Common C compiler warning flags # #CWARN= ${CSILENCE} #CWARN= -Wall ${CSILENCE} -CWARN= -Wall -Wextra ${CSILENCE} -#CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} # Compiler standard # @@ -94,7 +95,7 @@ ARCH= # Defines that are needed to compile # -CDEFINE= -Dg=11 -Ds=0 -DV=24 -DW=80 +CDEFINE= #CDEFINE= -DIOCCC # Include files that are needed to compile @@ -103,8 +104,8 @@ CINCLUDE= #CINCLUDE= -include stdlib.h #CINCLUDE= -include stdio.h #CINCLUDE= -include stdlib.h -include stdio.h -#CINCLUDE= -I ${X11_INCDIR} -#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 +#CINCLUDE= -I ${X11_INCDIR} -I ${X11_INCDIR}/X11 +#CINCLUDE= `${SDL2_CONFIG} --cflags` # Optimization # @@ -128,7 +129,7 @@ CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} LIBS= #LIBS= -lm #LIBS= -L ${X11_LIBDIR} -lX11 -#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL +#LIBS= `${SDL2_CONFIG} --libs` # C compiler to use # @@ -140,10 +141,7 @@ CC= cc # ifeq ($(CC),clang) # -CSILENCE+= -Wno-comma -Wno-implicit-int-conversion -Wno-missing-prototypes \ - -Wno-missing-variable-declarations -Wno-pedantic \ - -Wno-poison-system-directories -Wno-shadow -Wno-shorten-64-to-32 \ - -Wno-strict-prototypes -Wno-zero-length-array +#CSILENCE+= # CWARN+= -Weverything # @@ -168,12 +166,18 @@ ENTRY= duble PROG= prog # OBJ= ${PROG}.o +CSRC= ${PROG}.o DATA= TARGET= ${PROG} # ALT_OBJ= ${PROG}.alt.o ALT_TARGET= ${PROG}.alt +LINES= 24 +COLUMNS= 80 + +OS_SET= Linux FreeBSD Darwin + ################# # build the entry @@ -186,17 +190,85 @@ all: data ${TARGET} love haste waste maker easter_egg sandwich \ supernova deep_magic magic charon pluto -${PROG}: ${PROG}.c - ${CC} ${CFLAGS} $< -o $@ ${LIBS} +${PROG}: + ${MAKE} `${UNAME}` -${PROG}.alt: ${PROG}.alt.c - ${CC} ${CFLAGS} $< -o $@ ${LIBS} +check-os: check-os.sh + ${SHELL} ./check-os.sh ${LINES} ${COLUMNS} + +error-stty: + @echo "No stty command here. Please manually specify size in the Makefile." >&2 ; false + +has-stty: + which stty >/dev/null || $(MAKE) error-stty + +fullscreen: has-stty + ${MAKE} ${PROG} \ + LINES=`stty size | sed -s 's/ .*$$//'` \ + COLUMNS=`stty size | sed -s 's/^.* //'` + +Darwin: ${PROG}.c + ${RM} -f $@ + ${CC} ${CFLAGS} -Dg=392 \ + -Ds=46 \ + -DV=${LINES} \ + -DW=${COLUMNS} \ + $< -o ${PROG} ${LIBS} + ${LN} ${PROG} $@ + +FreeBSD: ${PROG}.c + ${RM} -f $@ + ${CC} ${CFLAGS} -Dg=392 \ + -Ds=46 \ + -DV=${LINES} \ + -DW=${COLUMNS} \ + $< -o ${PROG} ${LIBS} + ${LN} ${PROG} $@ + +Linux: ${PROG}.c + ${RM} -f $@ + ${CC} ${CFLAGS} -Dg=11 \ + -Ds=0 \ + -DV=${LINES} \ + -DW=${COLUMNS} \ + $< -o ${PROG} ${LIBS} + ${LN} ${PROG} $@ # alternative executable # alt: data ${ALT_TARGET} @${TRUE} +${PROG}.alt: + $(MAKE) `${UNAME}`.alt + +Darwin.alt: ${PROG}.alt.c + ${RM} -f $@ + ${CC} ${CFLAGS} -Dg=392 \ + -Ds=46 \ + -DV=${LINES} \ + -DW=${COLUMNS} \ + $< -o ${PROG}.alt ${LIBS} + ${LN} ${PROG}.alt $@ + +FreeBSD.alt: ${PROG}.alt.c + ${RM} -f $@ + ${CC} ${CFLAGS} -Dg=392 \ + -Ds=46 \ + -DV=${LINES} \ + -DW=${COLUMNS} \ + $< -o ${PROG}.alt ${LIBS} + ${LN} ${PROG}.alt $@ + +Linux.alt: ${PROG}.alt.c + ${RM} -f $@ + ${CC} ${CFLAGS} -Dg=11 \ + -Ds=0 \ + -DV=${LINES} \ + -DW=${COLUMNS} \ + $< -o ${PROG}.alt ${LIBS} + ${LN} ${PROG}.alt $@ + # data files # data: ${DATA} @@ -220,6 +292,7 @@ clean: clobber: clean ${RM} -f ${TARGET} ${ALT_TARGET} + ${RM} -f Darwin Darwin.alt FreeBSD FreeBSD.alt Linux Linux.alt @-if [ -e sandwich ]; then \ ${RM} -f sandwich; \ echo 'ate sandwich'; \ diff --git a/2019/duble/README.md b/2019/duble/README.md index 81ec38d7a..5f40f3ddd 100644 --- a/2019/duble/README.md +++ b/2019/duble/README.md @@ -1,32 +1,34 @@ # Best collaborative graphics -Etienne Duble - -Twitter: @etienne_duble + Etienne Duble + + Twitter: @etienne_duble -## To build: +# To build: - make all +```sh +make +``` -### To run +### To run: - ./prog file +```sh +./prog file +``` ### Try: - ./prog /tmp/drawing +```sh +./prog /tmp/drawing +``` - (open another window / terminal) +Open another window / terminal. - ./prog /tmp/drawing - - (open more terminals....) - - ./prog /tmp/drawing - - -NOTE: this entry does not work under at least some versions of macOS. +```sh +./prog /tmp/drawing +``` +Open more terminals... ### Alternate code @@ -35,17 +37,19 @@ code might not work as well on macOS. To compile this alternate version: - make alt +```sh +make alt +``` Use `prog.alt` as you would `prog` above. - -### Selected Judges' Remarks: +## Judges' comments: After starting the program, use the cursor keys, then try some modes, like "p" or "l" (they toggle). ## Author's comments: + ### Introduction This program is a **graphics editor**, running on the terminal. @@ -139,7 +143,9 @@ Note: the drawing files `prog` generates are probably even more portable than The default size is the one of my xterm (see top of Makefile). You may set it to the full size of your terminal window by typing: - $ make fullscreen +```sh +make fullscreen +``` IMPORTANT NOTES: @@ -172,12 +178,10 @@ and it works on macOS too! I must confess it was challenging to remain below the size limit with this little change. +## Copyright: --------------------------------------------------------------------------------- -