Need help with a makefile
Date: Wed, 07 Feb 2024 03:21:00 UTC
Hi all, I'm having a heck of a time getting my makefile conditional statements to not cause `make` to have fits. Could sure use some help on this. This is a makefile that works great _without_ the conditions, and my program compiles and runs on FBSD and Linux. I've just added a function who's header file is in a different location on Linux, so I'm needing detect the OS and set the correct preprocessor directives. I get the same errors without the line continuation backslashes. (More errors actually; one for lines 7, 9, 10, and 11 each) I'm using tabs for indent, and have checked for extraneous/misplaced spaces too. Here is the start of the makefile including the troublesome bits: 1 │ CC = cc 2 │ CFLAGS = -g -w -Wall -Wextra 3 │ LDFLAGS = -Wl,--allow-multiple-definition -lssl -lcrypto 4 │ RM = rm -f 5 │ UNAME := $(shell uname) 6 │ 7 │ ifeq ($(UNAME),FreeBSD) \ 8 │ CFLAGS += -D BSD \ 9 │ else ifeq ($(UNAME),Linux) \ 10 │ CFLAGS += -D LINUX \ 11 │ endif <snip> And here are the errors from `make`: ~/portable/src$ make make: "/home/jfa/portable/src/makefile" line 7: Invalid line type make: Fatal errors encountered -- cannot continue make: stopped in /home/jfa/portable/src I'm working on 14.0-RELEASE-p4. I've found plenty of advice on Stackoverflow, but nothing that solves the issue. Duckduckgo-ing produces more of the same, so I thought I'd reach out here. Thanks! - Jonathan ____________________________________________ "Before Turing, things were done to numbers. After Turing, numbers began doing things" - George Dyson