Search code examples
makefilelzma

"*** missing seperator" error in LZMA's makefile


I am trying to build the LZMA 18.05 library on Ubuntu 18.04, but here's what happens when I run make in C/Util/LzmaLib:

make makefile:26: *** missing seperator. Stop.

I really don't understand what could be causing this as I am not the one who made the code, but rather a well known library. Here's line 26:

!include "../../../CPP/Build.mak"

Below is the code for the makefile in question:

MY_STATIC_LINK=1
SLIB = sLZMA.lib
PROG = LZMA.dll
SLIBPATH = $O\$(SLIB)

DEF_FILE = LzmaLib.def
CFLAGS = $(CFLAGS) \

LIB_OBJS = \
  $O\LzmaLibExports.obj \

C_OBJS = \
  $O\Alloc.obj \
  $O\LzFind.obj \
  $O\LzFindMt.obj \
  $O\LzmaDec.obj \
  $O\LzmaEnc.obj \
  $O\LzmaLib.obj \
  $O\Threads.obj \

OBJS = \
  $(LIB_OBJS) \
  $(C_OBJS) \
  $O\resource.res

!include "../../../CPP/Build.mak"

$(SLIBPATH): $O $(OBJS)
    lib -out:$(SLIBPATH) $(OBJS) $(LIBS)

$(LIB_OBJS): $(*B).c
    $(COMPL_O2)
$(C_OBJS): ../../$(*B).c
    $(COMPL_O2)

Any idea how to fix this? If you need more, here's the download link to the library.


Solution

  • That's not a GNU makefile. I think it's for nmake on Windows. The other stuff (obj, def, lib, dll and a resource file) also points to a Windows library build, so just patching up the include syntax isn't enough. This doesn't look like something that's meant to build on Unix.