diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1b5294f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.o +a1 diff --git a/Makefile b/Makefile index 1716472..2673d9b 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,13 @@ CFLAGS = -Wall -g -CPPFLAGS = -I/usr/local/opt/readline/include -LDFLAGS = -L/usr/local/opt/readline/lib +CPPFLAGS = -I$(shell ./dependency-dir)/readline/include +LDFLAGS = -L$(shell ./dependency-dir)/readline/lib OBJS = utils.o builtins.o exec.o jobs.o main.o -all: a1 +all: a1 a1: $(OBJS) $(CC) $(CFLAGS) -o a1 $(OBJS) $(LDFLAGS) -lreadline -lhistory -ltermcap -clean: - rm -rf $(OBJS) a1 +clean: + rm -rf $(OBJS) a1 diff --git a/dependency-dir b/dependency-dir new file mode 100755 index 0000000..144a292 --- /dev/null +++ b/dependency-dir @@ -0,0 +1,17 @@ +#!/bin/sh + +if [[ $(uname -s) = Darwin ]]; then + if command -v brew >/dev/null 2>/dev/null; then + echo $(brew --prefix)/opt + elif [[ -x /opt/homebrew/bin/brew ]]; then + echo $(/opt/homebrew/bin/brew -- prefix)/opt + elif [[ -x $HOME/homebrew/bin/brew ]]; then + echo $($HOME/homebrew/bin/brew --prefix)/opt + elif [[ -x /usr/local/bin/brew ]]; then + echo $(/usr/local/bin/brew --prefix)/opt + else + echo /usr/local + fi +else + echo /usr +fi