mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-14 00:32:55 +00:00
Add count/not tools as executables.
- Apparently, I'm willing to do incredibly stupid things in the name of portability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82685 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b55e068e53
commit
48f7ce88a6
@ -262,6 +262,8 @@ add_subdirectory(lib/MC)
|
||||
add_subdirectory(test)
|
||||
|
||||
add_subdirectory(utils/FileCheck)
|
||||
add_subdirectory(utils/count)
|
||||
add_subdirectory(utils/not)
|
||||
|
||||
set(LLVM_ENUM_ASM_PRINTERS "")
|
||||
set(LLVM_ENUM_ASM_PARSERS "")
|
||||
|
@ -1,17 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Program: count
|
||||
#
|
||||
# Synopsis: Count the number of lines of input on stdin and test that it
|
||||
# matches the specified number.
|
||||
#
|
||||
# Syntax: count <number>
|
||||
|
||||
set -e
|
||||
set -u
|
||||
input_lines=`wc -l`
|
||||
if [ "$input_lines" -ne "$1" ]; then
|
||||
echo "count: expected $1 lines and got ${input_lines}."
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
@ -1,12 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Program: not
|
||||
#
|
||||
# Synopsis: Inverse the output of the program specified on the command line
|
||||
#
|
||||
# Syntax: not command <arguments>
|
||||
|
||||
if "$@"
|
||||
then exit 1
|
||||
else exit 0
|
||||
fi
|
@ -8,7 +8,7 @@
|
||||
##===----------------------------------------------------------------------===##
|
||||
|
||||
LEVEL = ..
|
||||
PARALLEL_DIRS := TableGen fpcmp PerfectShuffle FileCheck FileUpdate unittest
|
||||
PARALLEL_DIRS := TableGen fpcmp PerfectShuffle FileCheck FileUpdate count not unittest
|
||||
|
||||
EXTRA_DIST := cgiplotNLT.pl check-each-file codegen-diff countloc.sh cvsupdate \
|
||||
DSAclean.py DSAextract.py emacs findsym.pl GenLibDeps.pl \
|
||||
|
3
utils/count/CMakeLists.txt
Normal file
3
utils/count/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
add_executable(count
|
||||
count.c
|
||||
)
|
20
utils/count/Makefile
Normal file
20
utils/count/Makefile
Normal file
@ -0,0 +1,20 @@
|
||||
##===- utils/count/Makefile --------------------------------*- Makefile -*-===##
|
||||
#
|
||||
# The LLVM Compiler Infrastructure
|
||||
#
|
||||
# This file is distributed under the University of Illinois Open Source
|
||||
# License. See LICENSE.TXT for details.
|
||||
#
|
||||
##===----------------------------------------------------------------------===##
|
||||
|
||||
LEVEL = ../..
|
||||
TOOLNAME = count
|
||||
USEDLIBS =
|
||||
|
||||
# This tool has no plugins, optimize startup time.
|
||||
TOOL_NO_EXPORTS = 1
|
||||
|
||||
# Don't install this utility
|
||||
NO_INSTALL = 1
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
48
utils/count/count.c
Normal file
48
utils/count/count.c
Normal file
@ -0,0 +1,48 @@
|
||||
/*===- count.c - The 'count' testing tool ---------------------------------===*\
|
||||
*
|
||||
* The LLVM Compiler Infrastructure
|
||||
*
|
||||
* This file is distributed under the University of Illinois Open Source
|
||||
* License. See LICENSE.TXT for details.
|
||||
*
|
||||
\*===----------------------------------------------------------------------===*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
unsigned Count, NumLines, NumRead;
|
||||
char Buffer[4096], *End;
|
||||
|
||||
if (argc != 2) {
|
||||
fprintf(stderr, "usage: %s <expected line count>\n", argv[0]);
|
||||
return 2;
|
||||
}
|
||||
|
||||
Count = strtol(argv[1], &End, 10);
|
||||
if (*End != '\0' && End != argv[1]) {
|
||||
fprintf(stderr, "%s: invalid count argument '%s'\n", argv[0], argv[1]);
|
||||
return 2;
|
||||
}
|
||||
|
||||
NumLines = 0;
|
||||
while ((NumRead = fread(Buffer, 1, sizeof(Buffer), stdin))) {
|
||||
unsigned i;
|
||||
|
||||
for (i = 0; i != NumRead; ++i)
|
||||
if (Buffer[i] == '\n')
|
||||
++NumLines;
|
||||
}
|
||||
|
||||
if (!feof(stdin)) {
|
||||
fprintf(stderr, "%s: error reading stdin\n", argv[0]);
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (Count != NumLines) {
|
||||
fprintf(stderr, "Expected %d lines, got %d.\n", Count, NumLines);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
11
utils/not/CMakeLists.txt
Normal file
11
utils/not/CMakeLists.txt
Normal file
@ -0,0 +1,11 @@
|
||||
add_executable(not
|
||||
not.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(not LLVMSystem)
|
||||
if( MINGW )
|
||||
target_link_libraries(not imagehlp psapi)
|
||||
endif( MINGW )
|
||||
if( LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD )
|
||||
target_link_libraries(not pthread)
|
||||
endif()
|
21
utils/not/Makefile
Normal file
21
utils/not/Makefile
Normal file
@ -0,0 +1,21 @@
|
||||
##===- utils/not/Makefile ----------------------------------*- Makefile -*-===##
|
||||
#
|
||||
# The LLVM Compiler Infrastructure
|
||||
#
|
||||
# This file is distributed under the University of Illinois Open Source
|
||||
# License. See LICENSE.TXT for details.
|
||||
#
|
||||
##===----------------------------------------------------------------------===##
|
||||
|
||||
LEVEL = ../..
|
||||
TOOLNAME = not
|
||||
USEDLIBS = LLVMSupport.a LLVMSystem.a
|
||||
|
||||
# This tool has no plugins, optimize startup time.
|
||||
TOOL_NO_EXPORTS = 1
|
||||
|
||||
# Don't install this utility
|
||||
NO_INSTALL = 1
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
||||
|
17
utils/not/not.cpp
Normal file
17
utils/not/not.cpp
Normal file
@ -0,0 +1,17 @@
|
||||
//===- not.cpp - The 'not' testing tool -----------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/System/Path.h"
|
||||
#include "llvm/System/Program.h"
|
||||
using namespace llvm;
|
||||
|
||||
int main(int argc, const char **argv) {
|
||||
sys::Path Program = sys::Program::FindProgramByName(argv[1]);
|
||||
return !sys::Program::ExecuteAndWait(Program, argv + 1);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user