Files
amiga-smbfs/source_code/smakefile
T
Olaf Barthel cd9dce733f Rollback of all changes made for smbfs 2.23
The proof of concept implementation of mapping the original UTF16LE-encoded path names to hashed versions in the ISO-Latin-1 encoded space did not scale well and would invariably leak memory because there is no safe way to determine whether such a mapping was no longer needed. There appears to be no way to make this work robustly.

So, sadly, I removed Tygre's implementation.

We are back to square one with mapping UTF16LE-encoded path names, and also with mapping file/directory names longer than 107 characters (Windows names can be up to 127 characters long).
2024-09-23 14:40:20 +02:00

159 lines
5.5 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#
# :ts=4
#
# SMB file system wrapper for AmigaOS, using the AmiTCP V3 API
#
# Copyright (C) 2000-2019 by Olaf 'Olsen' Barthel <obarthel -at- gmx -dot- net>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#
# NOTE: In order to build smbfs you will need to obtain the AmiTCP
# SDK, or the equivalent for Miami/Miami Deluxe or Roadshow.
# From that SDK, copy the "netinclude" directory to the same
# directory you find this "smakefile" in. Next, modify this
# "smakefile", removing the "@ctags >tagfiles/$* $<" and
# "@type tagfiles/\#? >t:tags", "@copy t:tags """ and
# "@delete >nil: t:tags" lines if you don't have the "ctags"
# command installed.
#
.c.o:
sc $(CFLAGS) $<
@ctags >tagfiles/$* $<
.asm.o:
asm $(ASMFLAGS) $<
###############################################################################
PROJECT = smbfs
###############################################################################
#############################################################################
#
# Program version
#
#############################################################################
VERSION = 2
###############################################################################
OPTIMIZE = optimize opttime optinline optinlocal
CPU = any utillib
#CPU = 060 optschedule
DEBUG = line
#DEBUG = symbolflush noopt
###########################################################################
# This enables full debugging support, which will significantly
# increase the size of the program and also make it run slower.
#
# Note that the debug build requires the "code=far data=faronly"
# option and linking against "lib:scnb.lib".
#
#DEBUG_OPTIONS = define=DEBUG define=DUMP_SMB code=far data=faronly
###########################################################################
# Enable profiling support; note that this requires linking
# against "lib:scnb.lib" instead of "lib:sc.lib", just like
# it is necessary for the debug build.
#PROFILE_OPTIONS = profile code=far data=faronly
###############################################################################
# Note: if DEBUG_OPTIONS or PROFILE_OPTIONS are enabled you will need to link
# smbfs against "lib:scnb.lib" rather than "lib:sc.lib".
LIBS = lib:sc.lib lib:amiga.lib lib:debug.lib
###############################################################################
CFLAGS = \
idlen=64 comnest streq strmerge nostkchk \
$(OPTIMIZE) cpu=$(CPU) debug=$(DEBUG) $(DEBUG_OPTIONS) $(PROFILE_OPTIONS) \
params=register idir=netinclude idir=include \
ignore=306 gst=system_headers.gst
LFLAGS = \
noicons batch \
define __CXM33=__UCXM33 define __CXD33=__UCXD33 \
define __CXM22=__UCXM22 define __CXD22=__UCXD22
###############################################################################
OBJS = \
main.o cp437.o cp850.o crypt.o dump_smb.o parse-smb-url.o proc.o \
quad_math.o smb_abstraction.o sock.o splay.o swap_stack_and_call.o
###############################################################################
all: tagfiles system_headers.gst $(PROJECT)
tagfiles:
makedir $@
$(PROJECT): $(OBJS) system_headers.gst Assert.o
slink $(OBJS) to $@.debug lib $(LIBS) Assert.o $(LFLAGS) \
map $(PROJECT).map,fhx fwidth 32 pwidth 32 swidth 32
slink $@.debug to $@ noicons nodebug
@type tagfiles/\#? >t:tags
@copy t:tags ""
@delete >nil: t:tags
system_headers.gst: system_headers.h system_headers.c
gst unload $@
sc $(CFLAGS) nodebug noobjname nogst makegst=$@ system_headers.c
exall-example: exall-example.c
sc link exall-example.c
###############################################################################
assert.o : assert.c
cp437.o : cp437.c
cp850.o : cp850.c
crypt.o : crypt.c system_headers.h assert.h quad_math.h splay.h smbfs.h
dump_smb.o : dump_smb.c system_headers.h assert.h quad_math.h splay.h smbfs.h dump_smb.h
main.o : main.c system_headers.h assert.h quad_math.h splay.h smbfs.h smb_abstraction.h cp437.h cp850.h errors.h dump_smb.h parse-smb-url.h smbfs_rev.h
parse-smb-url.o : parse-smb-url.c system_headers.h assert.h quad_math.h splay.h smbfs.h parse-smb-url.h
proc.o : proc.c system_headers.h assert.h quad_math.h splay.h smbfs.h errors.h smbfs_rev.h
quad_math.o : quad_math.c quad_math.h
smb_abstraction.o : smb_abstraction.c system_headers.h assert.h quad_math.h splay.h smbfs.h errors.h smb_abstraction.h
sock.o : sock.c system_headers.h assert.h quad_math.h splay.h smbfs.h smb_abstraction.h dump_smb.h errors.h
splay.o : splay.c system_headers.h assert.h quad_math.h splay.h smbfs.h
###############################################################################
clean:
-delete \#?.o $(PROJECT)(%|.debug) exall-example(%|.lnk)
realclean: clean
-delete system_headers.gst tags tagfiles \#?.map ID all
###############################################################################
mkid:
mkid -v \#?.(c|h|a|asm|i) include/smb/\#?.h
update:
mkid -v -u
version:
bumprev $(VERSION) $(PROJECT)