target := archive-reader
binary := library
build := performance
openmp := false

nall.path := ../nall
include $(nall.path)/GNUmakefile

flags += -fPIC -I. -I..
options += -s

objects := archive-reader

# 7-zip
flags += -D_7ZIP_PPMD_SUPPPORT
objects += 7zAlloc 7zBuf 7zCrc 7zCrcOpt 7zFile 7zDec 7zArcIn 7zStream
objects += Bcj2 Bra Bra86 BraIA64 CpuArch Delta
objects += Lzma2Dec LzmaDec Ppmd7 Ppmd7Dec

objects := $(patsubst %,obj/%.o,$(objects))

obj/archive-reader.o: archive-reader.cpp

#############
### 7-zip ###
#############

obj/7zAlloc.o : 7z_C/7zAlloc.c 7z_C/*
obj/7zBuf.o   : 7z_C/7zBuf.c 7z_C/*
obj/7zCrc.o   : 7z_C/7zCrc.c 7z_C/*
obj/7zCrcOpt.o: 7z_C/7zCrcOpt.c 7z_C/*
obj/7zFile.o  : 7z_C/7zFile.c 7z_C/*
obj/7zDec.o   : 7z_C/7zDec.c 7z_C/*
obj/7zArcIn.o : 7z_C/7zArcIn.c 7z_C/*
obj/7zStream.o: 7z_C/7zStream.c 7z_C/*
obj/Bcj2.o    : 7z_C/Bcj2.c 7z_C/*
obj/Bra.o     : 7z_C/Bra.c 7z_C/*
obj/Bra86.o   : 7z_C/Bra86.c 7z_C/*
obj/BraIA64.o : 7z_C/BraIA64.c 7z_C/*
obj/CpuArch.o : 7z_C/CpuArch.c 7z_C/*
obj/Delta.o   : 7z_C/Delta.c 7z_C/*
obj/Lzma2Dec.o: 7z_C/Lzma2Dec.c 7z_C/*
obj/LzmaDec.o : 7z_C/LzmaDec.c 7z_C/*
obj/Ppmd7.o   : 7z_C/Ppmd7.c 7z_C/*
obj/Ppmd7Dec.o: 7z_C/Ppmd7Dec.c 7z_C/*

###############
### targets ###
###############

all: $(objects)
	$(info Linking archive-reader ...)
ifeq ($(platform),windows)
	+@$(compiler) -o out/archive-reader.dll -shared $^ $(options)
else ifeq ($(platform),macos)
else
	+@$(compiler) -o out/archive-reader.so -shared $^ $(options)
endif

install:
ifeq ($(platform),windows)
else ifeq ($(platform),macos)
else
endif

clean:
	$(call rm,out/*)
